特定の拡張子を持つファイルと長さ0のファイルを削除する

特定の拡張子を持つファイルと長さ0のファイルを削除する

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

おすすめ記事