ディレクトリ構造内の条件を満たすファイルを選択するにはどうすればよいですか


1

OSX(Mountain Lion)に大きなディレクトリツリーがあり、特定のしきい値ファイルサイズ以下のすべてのファイルを削除する必要があります。小さなファイルを除いてディレクトリの複製を作成するか、元のディレクトリから単純に削除できます。

「検索」を使用することを考えましたが、どのように理解することができます。

ありがとう


Findのサイズは-size n [ckMGTP]です。512 バイトブロック単位で切り上げられたファイルのサイズがnである場合はtrueです。それは十分に正確ですか、または小さなファイルを削除する必要がありますが、512バイト以外は保持しますか?(10キロバイトまでのファイルの構文は次のようになりfind . -size +10k -print-execとRM、または-deleteと組み合わせる。)
ヘネス

言うまでもなく、最初にrmではなくechoでテストします。例:find . -size +100k -exec echo Would delete {} \;
ヘネス

回答:


2

を使用できますfind。12345バイトより小さいすべてのファイルを削除するには:

find somedir -type f -size -12345c -delete

これを使用する前にテストしてください!最初に削除せずに検索を実行すると、どのファイルが影響を受けるかを確認できます。

find somedir -type f -size -12345c

cサイズの修飾子は、バイトをカウントするように指示します。上記のHennesは正しい軌道に乗っていましたが、GNU findとOSXに付属するBSD findは両方ともcバイト数修飾子をサポートしています。検索については、manページを参照してください。キロバイトまたはメガバイト単位のサイズのみを考慮する場合は、他のオプションも利用できます。


または単にfind … -delete-パイプとの必要はありませんxargs
slhck

ありがとう。私はある種の精神的なブロックに対して反対-deleteです。xargsで20年ほど使用しています。:)
ジムスチュワート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.