我想总结特定用户所有的所有文件的大小(递归)。虽然,我不想拥有所有目录的巨大列表,只是整体大小。
因此,此答案的解决方案如下:
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
.