linux下如何统计部分文件大小,有很多文件夹,还包含子文件件夹,统计出所有包含‘123’的文件的总大小

如题所述

查看某个文件夹或文件的大小是: du -sm filename,

查找某些目录下某些文件文件夹的大小: find . -name "条件" | xargs du -sm

你如果想查所有包含123的文件的大小的话,使用linux命令可能就很难做到了,使用shell脚本可以实现到,你可以在shell脚本中先查出来所有名字是123的文件,搜索结果中会是全路径形式的,你取文件所在的目录,然后使用上面的方式统计出来包含123文件的所有文件夹的总大小.

例如:

    先搜出来所有123的文件:find . -name "123"

    /temp/123

    /temp/f1/123

    /temp/f2/123

    获取文件所在的文件夹

    /temp

    /temp/f1

    /temp/f2

    然后 ***| xargs du -sm

    把上面的值加起来

追问

不好意思,不会写脚本。
是:find . -name "123*" | xargs du -sm
改成.sh文件,执行吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-26
b=0
for i in `find /tmp/ -name "*123*" |xargs du -sm | awk '{print $1}'`; do b=$((b+i)); done
echo $b


这个单位是m。把/tmp换成你的文件夹,试试这样行不

追问

文件名字中都包含“空格”,如123 233353.ts
名称如果设置成“123*”,脚本则提示123不是文件夹,233353.ts不是文件夹
名称如果设置成“123空格*”,脚本统计出的结果是所有文件的大小的总和,包括非123开头的文件。

追答for i in `find /tmp/sh/ -name "*123*" |xargs -I{} du -sm {} | awk '{print $1}'`; do b=$((b+i)); done


跟刚才基本一样就是把xargs带个-I参数。

本回答被提问者采纳
第2个回答  2013-10-29
ls -lR | grep 123 | wc -l

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网