如何使用du命令获取所有文件及其子目录中所有文件的大小。
我正在尝试以下命令来获取所有文件(和子目录中的文件)的大小
find . -type f | du -a
但这也会打印出文件夹的大小。如何获得所有文件和子目录中文件大小的列表?我也尝试了,exec flag
但我不确定在执行find
into 的结果后如何将输出传递到另一个命令du
。
操作系统是带有ksh shell的AIX 6.1。
如何使用du命令获取所有文件及其子目录中所有文件的大小。
我正在尝试以下命令来获取所有文件(和子目录中的文件)的大小
find . -type f | du -a
但这也会打印出文件夹的大小。如何获得所有文件和子目录中文件大小的列表?我也尝试了,exec flag
但我不确定在执行find
into 的结果后如何将输出传递到另一个命令du
。
操作系统是带有ksh shell的AIX 6.1。
Answers:
我通常使用该-exec
实用程序。像这样:
find . -type f -exec du -a {} +
我用GNU find在bash和ksh上都尝试过。我从未尝试过AIX,但是我确定您的find版本具有某些-exec
语法。
以下代码段对列表进行排序,从大到小:
find . -type f -exec du -a {} + | sort -n -r | less
+
选项的信息。那是一个选项du
还是find
?为什么会减少通话次数?
find
。它仅对exec
命令(在我们的示例中du
)指定一次,所有find
给定的结果作为命令的连续参数给出。
du -f --threshold=1G
如果您有GNU实用程序,请尝试
find . -type f -print0 | du --files0-from=-
man du
没有列出files
或from
标记。
du -ch
来获取大量匹配文件:find . -name 'blah blah.*' -print0 | du --files0-from=- -ch
当前目录中的特定文件
du -ch files*
较短,为我工作
du -sh .
用于当前目录和子目录中的所有文件
du(GNU coreutils)8.30
du -ch files*
?假设当前目录包含ant
,apple
,banana
,bat
,cat
,corn
,date
,和dog
,那里的动物名称的子目录和水果/蔬菜名称的文件-你会用什么命令得到公正的文件?还是那不是你的意思?(2) du -sh .
仅报告当前目录中及其下的所有内容,而不报告文件本身。这与问题所要求的完全相反。
find -print0
或其他GNU功能,我会回答这个问题。如果可以,更换\;
用\+
将导致更少的调用du
,从而更好的性能。