我试图找出给定用户拥有的所有文件的总大小。如何查找用户所有权下的所有文件的总大小?
我已经试过这样:
find $myfolder -user $myuser -type f -exec du -ch {} +
但是,这给了我一个错误:
missing argument to exec
,我不知道如何解决它。有人可以帮助我吗?
我试图找出给定用户拥有的所有文件的总大小。如何查找用户所有权下的所有文件的总大小?
我已经试过这样:
find $myfolder -user $myuser -type f -exec du -ch {} +
但是,这给了我一个错误:
missing argument to exec
,我不知道如何解决它。有人可以帮助我吗?
用途:
find $myfolder -user gisi -type f -print0 | xargs -0 du -sh
其中用户gisi
是我的猫;)
注意事项选项-s
总结
find ... -print0
进一步说明,其中,一方面用0
字节分隔文件名,这是文件名中不允许的几个字符之一,另一方面xargs -0
,它使用0
字节作为分隔符。这确保即使奇特的文件名也不会成为问题。
你只需要终止-exec。如果您希望每个目录的总数为 可能需要-type d
。
find $myfolder -user $myuser -type d -exec du -ch {} \;
find命令的一些版本不喜欢 “+” 为find命令 终止使用 “\;”而不是“+”
谢谢你的工作。 – minh911 2013-05-04 20:00:07
'+'应该也能工作;它告诉'find'传递多个参数(达到一定的内部限制),从而减少产生的子进程的数量。 – 2013-05-04 21:28:37