web-dev-qa-db-ja.com

すべてのサブフォルダ内の特定のサイズより小さいすべてのファイルを削除する方法

私はいくつかの大きなマルチページTIFファイルと一緒に、より大きなPDFファイルに一緒にマージされている小さなTIFファイル(160キロバイト未満)を含む多くのサブフォルダを持つフォルダを持っています。

大きいファイル(tifまたはpdf)を削除せずにディレクトリ構造を保持せずに、小さいtifファイルをすべて削除したい。 Linuxでコマンドラインを使用してどうすればいいですか。

83
To Do
find . -name "*.tif" -size -160k -delete

最初に-deleteなしでコマンドを実行して、正しいファイルが見つかったことを確認します。

-の前の160kに注意してください。 160kはちょうど160キロバイトを意味します。 -160kは、160キロバイトより小さいことを意味します。 +160kは、160キロバイトを超えることを意味します。

サイズをバイト単位(160キロバイトではなく160バイト)でフィルタリングする場合は、160cのように記述する必要があります。 160と記述すると、160 * 512バイトとして解釈されます。これはPOSIXによる奇妙な要件です。詳細についてはこちらをお読みください: https://unix.stackexchange.com/questions/259208/purpose-of-find-commands-default-size-unit-512-bytes

152
lesmana