ディレクトリ内の特定のファイルでのみ消費されるディスク容量を再帰的に計算する方法は?
答え1
find -iname '*.jpg' -print0 | du --files0-from=- -h -c | tail -1
-iname
検索では大文字と小文字が区別されません。-print0
NUL
改行の代わりに書く--files0-from=-
NUL
改行の代わりに読み取り、パラメータのstdin
代わりにパラメータから読み取る-h
結果を人間が読める形式で出力します(例:1K
代わりに1024
)。-c
出力合計(例23G
:)tail -1
個々のファイルサイズを抑制し、合計のみを出力します。
答え2
そしてzsh
:
zmodload zsh/stat
stat -LA blocks +blocks -- **/*.jpg(NDoN)
print $(( (${(j[+])blocks} + 0) * 512 ))
.jpg
修飾子付きの隠しファイルを含む、名前で終わるすべてのファイルD
の累積ディスク使用量が印刷されます。同じファイルへの複数のハードリンクがある場合、ディスク使用量は複数回計算されます(これはほとんどdu
の実装とは異なります)。
一部のファイルがまたはタイプの場合目次は、ディレクトリファイル自体のディスク使用量のみを計算し、そのディレクトリをナビゲートするときに見つけることができるファイルは計算しません(との別の違いdu
)。