2

特定のディレクトリ内の特定のサイズ (この場合は 39 ビット) のすべてのファイルを削除しようとしています。以下のコードは、0 ビットのすべてのファイルを削除することを知っています。

find /home/.../...* -size 0 -type f -exec rm -f '{}' \;

では、39ビットファイルで機能させるにはどうすればよいですか? 以下のcronは機能しません。

find /home/.../...* -size 39 -type f -exec rm -f '{}' \;
4

1 に答える 1

1

find 独自の削除プライマリの代わりに rm を使用している理由はありますか?

find /home/.../...* -size 39c -type f -delete

サイズプライマリが512kブロックの数としてパラメータを取り、それを満たすためにファイルサイズを切り上げるにもかかわらず、なぜそれが機能しないかの鍵となるため、39は実際には14,337から19,968バイトの間のファイルサイズを意味します. c一致するサイズをバイト単位で指定するには、接尾辞(文字用)を追加する必要があります。

ただし、rm を使用する必要がある場合は、コマンドを a+ではなくa で終了する\;方が効率的です。これは、一致するファイル名をまとめて (xargs を使用するなど) バッチ処理して、rm を呼び出す必要がある回数を減らすためです。

于 2013-04-14T01:50:03.330 に答える