汇总特定用户所有权下文件的总大小



我想总结特定用户所有权下的所有文件的大小(递归(。不过,我不想拥有所有目录的庞大列表,只是整体大小。

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

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

必须修改,但如何修改?

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

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

$ find . -user BobTheCat -type f -printf '%sn' | awk '{bytes+=$0}END{print bytes}'

试试这个:

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

-prune可防止find递归到目录中,因为du -s已经这样做了,并且会导致对每个子目录进行多次计数。

du -c选项告诉它在末尾打印总计,tail -1只打印该行。

如果要包含 BobTheCat 拥有但不在他拥有的目录中的文件,请从 find 中删除-type d

最新更新