クエリで「-size」と「-exec rm」を組み合わせる方法は?

クエリで「-size」と「-exec rm」を組み合わせる方法は?

これを使用すると動作します。

find /home -name "error_log" -exec rm -rf {} \;

ただし、ファイルサイズ制限を追加しようとすると、ファイルは削除されません。

find /home -size +5000000b -name "error_log" -exec rm -rf {} \;

このタスクにサイズ制限を適用する方法についてのアイデアはありますか?

答え1

-sizeサフィックスはbバイトではなく512バイトのブロックを意味します。5000000b2,560,000,000バイトまたは2.5GBです。

努力する:

find /home -size +5M -name "error_log" -exec rm -rf {} \;

GNUでマニュアルページを探す:

-size n [cwbkMG]ファイルはn単位のスペースを使用します。次のサフィックスを使用できます。

'b'は512バイトブロックを意味します(サフィックスが使用されていない場合はデフォルト値です)。

「c」はバイトを表します。

「w」は2バイトの単語を表します。

「k」はキロバイト(1024バイト単位)を表します。

「M」はメガバイト(1,048,576バイト単位)を表します。

「G」はギガバイト(1073741824バイト単位)を表します。

このサイズは間接ブロックを計算しませんが、スパースファイルから割り当てられていない実際のブロックを計算します。%k' and-printf の %b' 形式指定子は、希少ファイルを別々に処理することに注意してください。 "b"サフィックスは常に1KBブロックではなく512バイトブロックを表し、これは-lsの動作とは異なります。

関連情報