Linux findコマンド - サイズごとにディレクトリを見つける方法は?

Linux findコマンド - サイズごとにディレクトリを見つける方法は?

findディレクトリのサイズによっては結果が返されますか?
以下のコマンドは期待どおりに機能します。

find * -type f -size +10M -exec ls -hlSr {} \+

ただし、同じコンテンツをディレクトリに適用すると、結果は返されません。

find * -type d -size +10M -exec ls -hlSr {} \+   //no output

上記のいくつかの変更が可能かどうか疑問に思います。

du希望の出力を得るために-->をこのように使用できることを知っていますが、制限と使用シナリオを理解するdu -hs * | sort -hことに興味があります。find

答え1

これは予想されます。

find -sizeディレクトリの内容は確認されず、inodeサイズのみが確認されます(ディレクトリも「ファイル」にすぎないことを覚えておいてください)。ディレクトリの場合、10Mを超えることはできないため、結果findは空です。

inodeのサイズは、次の実行時に得られるサイズと同じですstat

$ du -s dir
61943836851 dir

$ stat -c %s dir
53248

そのため、単独では使用できませんfind
もちろん、フィルタリングオプションをfind . -type d -exec du -hs {} +使用することもできます。find


追加資料:

関連情報