2017-09-15 3 views
1

ディレクトリ内のすべての.pngファイルを削除し、削除ファイル名をテキストファイルに保存したい。私は次のコマンドでこれを行うことができました:削除する前にファイル名を書き込む

find . -name "*.png" -delete -print >> log.txt 

すべて正常に動作し、ログにはファイルのパス全体が削除されます。しかし、削除するファイルが複数ある場合、ログに置かれる名前はすべて同じ行にあります。

C:/Users/Dragos.Cazangiu/Desktop/TesteCyg/CMDER/New Bitmap Image3.pngC:/Users/Dragos.Cazangiu/Desktop/TesteCyg/CMDER/2.pngC:/Users/Dragos.Cazangiu/Desktop/TesteCyg/CMDER/New Bitmap Image.png 

は、どのように私はそれが新しい行に各ファイルを置くことができますし、また、どのように私は、パスの前にメッセージを追加することができ、のようなもの「削除されたファイルは次のとおりである:」

ありがとうございます!

答えて

1

あなたはこの述語と-print述語置き換えることができます:あなたが持っている場合は

find . -name "*.png" -delete -exec printf 'The deleted file is: %s\n' {} \; >> log.txt 

:コマンドがどのように見えるように

-exec printf 'The deleted file is: %s\n' {} \; 

をメッセージを追加するには

GNU findの場合は、-printf predようicate:bashの、rmを使用して

find . -name "*.png" -delete -printf 'The deleted file is: %p\n' >> log.txt 
+0

明示的にprintfのポイントが表示されない '\ n'。これは実際にはデフォルトです。また、 '{} \;'はここで間違っています。 '-exec'オプションに固有の構文です。なぜこれが受け入れられたのか不思議。 – hek2mgl

+0

@ hek2mgl:コードを読んで(理解しましたか) –

+0

私はあなたが '-exec printf'を見逃したことを認めます。しかし、それは多かれ少なかれ同じです。あなたは '\ n'を出力していますが、これはデフォルトです。 – hek2mgl

1

find。 -name "* .pngの" -delete -print "\ n" は>>あなたがWindows上であるので、(何らかの理由で...;)

2

をLOG.TXTあなたがするために-printfを使用する場合があります)

find . -name '*.png*' -delete -printf "%p\r\n" >> log.txt 

また、出力ファイルをUNIXの行末に表示するために使用しているテキストエディタを設定するだけです。

find . -name '*.png*' -delete -printf "Deleted: %p\r\n" >> log.txt 
1

はるかに直感的(TGIF :)方法、yesとAWK。まず、テスト用のもの:次に

$ touch 1.png 2.png 3.png 

for i in *.png ; do yes | rm -i $i 2>&1 >/dev/null | awk '{gsub(/^.|..$/,"",$NF);print $NF}' >> file ; done 
$ cat file 
1.png 
2.png 
3.png 

か:必要に応じて

for i in *.png          # daloop 
do             # yes sir 
    yes |            # nod to pipe 
    rm -i $i 2>&1 >/dev/null |       # rm interactively piping the stderr 
    awk '{ gsub(/^.|..$/,"",$NF); print $NF }' >> file # ... to awk 
done             # phew 

引用$i

+0

これはもっと直感的ですか? – hek2mgl

+0

@ hek2mglあなたはおそらくそれを逃しました:) _intuitive_と_TGIF _...の直後 –

+1

ええ、私はそれを逃したようです – hek2mgl

関連する問題