du
ファイルのリストを渡すと要約されません。
代わりに、出力を cut
にパイプします awk
にします それを要約します。つまり、次のように言えます:
find . -mtime +180 -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'
オプション -h
に注意してください 人間が読める形式で結果を表示するためのコードは -k
に置き換えられました これは 1K のブロックサイズに相当します。結果は MB 単位で表示されます (total/1024
を参照)
@ピーターTは正しいです。これらの回答のほとんどすべてが、ファイルごとにコマンド (du) を呼び出します。これは、リソースを大量に消費し、遅く、不必要です。最も簡単で最速の方法は次のとおりです:
find . -type f -mtime +356 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'
なぜこれではないのですか?
find /path/to/search/in -type f -mtime +180 -print0 | du -hc --files0-from - | tail -n 1