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
追加資料: