
Bashスクリプトで、このディレクトリにある.tmpまたは.swp拡張子を持つ長さ0のファイルをすべて削除してディレクトリをクリーンアップする方法がわかります(時には.swpファイルと.tmpファイルが隠されていることに注意してください)。
答え1
ファイルが3つあります。サイズを確認してください。
find . -type f \( -name "*.tmp" -o -name "*.swp" \) -ls
17717019 0 -rw-r--r-- 1 jai wheel 0 Mar 23 09:10 ./a/.tmp
17717018 0 -rw-r--r-- 1 jai wheel 0 Mar 23 09:10 ./a/x.swp
17717007 8 -rw-r--r-- 1 jai wheel 38 Mar 23 09:09 ./b/y.swp
サイズが0バイトのファイルを探す -
$ find . -type f \( -name "*.tmp" -o -name "*.swp" \) -size 0c
./a/.tmp
./a/x.swp
サイズ0のファイルのみ削除 -
$ find . -type f \( -name "*.tmp" -o -name "*.swp" \) -size 0c -exec rm -i {} \;
remove ./a/.tmp? y
remove ./a/x.swp? y
$
もう一度確認してください。サイズがゼロ以外のファイルのみを保存してください。
$ find . -type f \( -name "*.tmp" -o -name "*.swp" \) -ls
17717007 8 -rw-r--r-- 1 jai wheel 38 Mar 23 09:09 ./b/y.swp