我在Linux中有一个包含大量文件(数万个)的目录,以及可能包含数千个文件的目录。
在某些时候,下面的du命令失败,出现“参数列表太长”的错误:
du -ch data/*.txt
如果我通过查找命令pipe道,我没有得到“总计”,
find data/ -iname '*.txt' | xargs du -ch
做这样的事情:
find data -iname '*.txt' |xargs stat -c '%s' |awk '{total=total+$1}END{mbtotal = total / 1000000 ; print mbtotal}'
基本上,使用find来获取你的文件列表,使用stat获得每个命中的文件大小(格式化输出,以便显示大小),然后使用awk (在我的例子中,除以1,000,000得到像兆字节;根据您的判断更改分母)。
你也可以用Perl做类似的练习,或者你想用的任何语言。