2010-10-28 23:09:03 +0000 2010-10-28 23:09:03 +0000
241
241

ターミナルで、どのようにしてxバイトよりも大きい/小さいファイルを見つけることができますか?

find . -exec ls -l {} \;

のようなことをして、その結果を awk にパイプしてファイルサイズでフィルタリングすることができると思います。しかし、これよりも簡単な方法があるべきではありませんか?

回答 (4)

386
386
386
2010-10-28 23:37:50 +0000

使用:

find . -type f -size +4096c

は 4096 バイトより大きいファイルを見つけるために

と:

find . -type f -size -4096c

は 4096 バイトより小さいファイルを見つけるために

サイズ スイッチの後の + と - の相違に注目して下さい。

8
8
8
2015-10-25 22:03:31 +0000

AWKにパイピングしなくても、findだけでも便利なのではないかと思います。例えば、

find ~ -type f -size +2k -exec ls -sh {} \;

チルダは検索を開始する場所を示し、結果は2キロバイト以上のファイルのみを表示します。

5
5
5
2010-10-29 00:01:20 +0000

AWKは本当にこの種のことのために非常に簡単です。ここにあなたが尋ねたようなファイルサイズの点検に関連してそれとすることができるいくつかの事があります:

200バイトより大きいリストファイル:

ls -l | awk '{if ($5 > 200) print $8}'

200バイトより小さいリストファイルおよびファイルにリストを書きなさい:

ls -l | awk '{if ($5 < 200) print $8}' | tee -a filelog

0バイトのリストファイル、ファイルへのリストを記録し、空のファイルを削除しなさい:

ls -l | awk '{if ($5 == 0) print $8}' | tee -a deletelog | xargs rm
3
3
3
2010-10-28 23:27:11 +0000

2000 バイトより大きい:

du -a . | awk '$1*512 > 2000 {print $2}'

2000 バイトより小さい:

du -a . | awk '$1*512 < 2000 {print $2} '

関連する質問

10
37
7
14
9