我想总结所有文件的大小(递归),这些文件属于特定用户的所有权。虽然,我不想拥有所有目录的庞大列表,只需要整体大小。
因此来自this answer的解决方案如下:
find . -user BobTheCat -type d -exec du -hs {} \;
必须修改,但如何?
我知道使用像awk这样的后处理是可能的,但我想这可以做得更直接。
答案 0 :(得分:3)
如果find
附带-printf
,请使用该$ find . -user BobTheCat -type f -printf '%s\n' | awk '{bytes+=$0}END{print bytes}'
。 E.g:
{{1}}
答案 1 :(得分:1)
试试这个:
find . -user BobTheCat -type d -exec du -shc {} + -prune | egrep '^total\b'
-prune
阻止find
递归到目录,因为du -s
已经这样做了,并且会导致多次计算每个子目录。
-c
的{{1}}选项告诉它在结尾打印总计,而du
只打印该行。
如果您想要包含tail -1
所有但不属于他所拥有的目录的文件,请从BobTheCat
删除-type d
。