如题所述
查看某个文件夹或文件的大小是: 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
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开头的文件。
跟刚才基本一样就是把xargs带个-I参数。
本回答被提问者采纳第2个回答 2013-10-29
ls -lR | grep 123 | wc -l