サイズが1MB未満のファイルを再帰的に削除します

サイズが1MB未満のファイルを再帰的に削除します

ディレクトリからサイズが 1MB 未満のファイルを再帰的に削除するにはどうすればよいですか?

答え1

これは次のように実行できますfind:

find . -type f -size -1M -exec rm {} +

これはサブディレクトリに再帰的に降りていき、1 メガバイト未満のすべてのファイルを無条件に削除することに注意してください。注意してください。

答え2

これで問題は解決するはずです:

$ find <directory> -type f -size -1M -delete

答え3

多様性と(おそらくわずかな)パフォーマンス向上のためだけに:

find <directory> -type f -size -1M -print0  | xargs -0 rm

答え4

このリンクからチェックアウトできますhttp://ayaz.wordpress.com/2008/02/05/bash-quickly-deleting-empty-files-in-a-directory/まさにあなたが望むものが揃っています。

for file in *;
  do
    file_size=$(du $file | awk '{print $1}');
    if [ $file_size == 0 ]; then
        echo "Deleting empty file $file with file size $file_size!";
        echo "rm -f $file";
    fi;
done

上記の例のように、for ループを使用してすべてのファイルを反復処理し、du と awk を使用してファイル サイズを見つけることができます。

関連情報