【发布时间】:2014-07-23 19:45:12
【问题描述】:
我可以设想一个简单的 shell 脚本,只需遍历目录中的文件列表并将各个文件的大小相加即可完成我想要的操作,但我想知道是否已经有更简洁的方法来做到这一点。
类似
ls -lh *.jpg
这给了我目录中所有 jpg 文件的总大小
【问题讨论】:
-
du -hsc pattern将为您提供所有匹配模式的文件的总大小。
我可以设想一个简单的 shell 脚本,只需遍历目录中的文件列表并将各个文件的大小相加即可完成我想要的操作,但我想知道是否已经有更简洁的方法来做到这一点。
类似
ls -lh *.jpg
这给了我目录中所有 jpg 文件的总大小
【问题讨论】:
du -hsc pattern 将为您提供所有匹配模式的文件的总大小。
尝试du总结磁盘使用情况:
du -csh *.jpg
输出(例如):
8.0K sane-logo.jpg
16K sane-umax-advanced.jpg
28K sane-umax-histogram.jpg
24K sane-umax.jpg
16K sane-umax-standard.jpg
4.0K sane-umax-text2.jpg
4.0K sane-umax-text4.jpg
4.0K sane-umax-text.jpg
104K total
du 不会汇总文件的大小,而是汇总文件系统中已使用块的大小。如果文件大小为 13K,而文件系统使用的块大小为 4K,则该文件显示为 16K。
【讨论】:
你可以使用这个功能:
dir () { ls -FaGl "${@}" | awk '{ last_size += $4; print }; END { print last_size }'; }
你也可以使用这个更短的命令,给你更好的结果!
find YOUR_PATH -type f -name '*.jpg' -exec du -ch {} +
【讨论】:
对于不显示文件列表,只显示总大小,使用这个:
du -ch *.php.* | grep total
输出:
196M total
【讨论】: