【问题标题】:Short command to find total size of files matching a wild card查找与通配符匹配的文件的总大小的短命令
【发布时间】:2014-07-23 19:45:12
【问题描述】:

我可以设想一个简单的 shell 脚本,只需遍历目录中的文件列表并将各个文件的大小相加即可完成我想要的操作,但我想知道是否已经有更简洁的方法来做到这一点。

类似

ls -lh *.jpg

这给了我目录中所有 jpg 文件的总大小

【问题讨论】:

  • du -hsc pattern 将为您提供所有匹配模式的文件的总大小。

标签: linux bash


【解决方案1】:

尝试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。

【讨论】:

    【解决方案2】:

    你可以使用这个功能:

    dir () { ls -FaGl "${@}" | awk '{ last_size += $4; print }; END { print last_size }'; }
    

    你也可以使用这个更短的命令,给你更好的结果!

    find YOUR_PATH -type f -name '*.jpg' -exec du -ch {} +
    

    【讨论】:

      【解决方案3】:

      对于不显示文件列表,只显示总大小,使用这个:

      du -ch *.php.* | grep total
      

      输出:

      196M    total
      

      【讨论】:

        猜你喜欢
        • 2014-02-14
        • 2015-02-17
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 2010-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多