特定のユーザーが所有するすべてのファイルのサイズを (再帰的に) 合計したいと考えています。ただし、すべてのディレクトリの巨大なリストは必要ありません。全体のサイズだけです。
したがって、この回答の解決策は次のようになります。
find . -user BobTheCat -type d -exec du -hs {} \;
変更する必要がありますが、どのように?
awk のような後処理で可能であることは知っていますが、これはもっと簡単にできると思います。
特定のユーザーが所有するすべてのファイルのサイズを (再帰的に) 合計したいと考えています。ただし、すべてのディレクトリの巨大なリストは必要ありません。全体のサイズだけです。
したがって、この回答の解決策は次のようになります。
find . -user BobTheCat -type d -exec du -hs {} \;
変更する必要がありますが、どのように?
awk のような後処理で可能であることは知っていますが、これはもっと簡単にできると思います。
find
が付属している場合は-printf
、それを使用してください。例えば:
$ find . -user BobTheCat -type f -printf '%s\n' | awk '{bytes+=$0}END{print bytes}'
これを試して:
find . -user BobTheCat -type d -exec du -shc {} + -prune | egrep '^total\b'
は、ディレクトリへの再帰を-prune
防止します。これは、すでにそれを行っているためであり、各サブディレクトリを複数回カウントすることになります。find
du -s
最後に総計を印刷するように指示し、その行だけを印刷する-c
オプション。du
tail -1
BobTheCat
が所有しているが、彼が所有するディレクトリにないファイルを含めたい場合は、から削除-type d
しfind
ます。