2

我想总结特定用户所有的所有文件的大小(递归)。虽然,我不想拥有所有目录的巨大列表,只是整体大小。

因此,此答案的解决方案如下:

find . -user BobTheCat -type d -exec du -hs {} \;

必须修改,但如何修改?

我知道使用 awk 之类的后处理是可能的,但我想这可以更直接地完成。

4

2 回答 2

3

如果您find附带-printf,请使用它。例如:

$ find . -user BobTheCat -type f -printf '%s\n' | awk '{bytes+=$0}END{print bytes}'
于 2014-08-19T12:02:06.517 回答
1

尝试这个:

find . -user BobTheCat -type d -exec du -shc {} + -prune | egrep '^total\b'

-prune防止find递归到目录中,因为已经这样du -s做了,这将导致多次计算每个子目录。

告诉它在最后打印总计的-c选项,并且只打印该行。dutail -1

如果要包含由 拥有BobTheCat但不在他拥有的目录中的文件,请-type dfind.

于 2014-08-19T11:43:39.913 回答