【问题标题】:Unix command line : How to get the total size of modified files in the last 30 daysUnix命令行:如何获取最近30天修改文件的总大小
【发布时间】:2012-04-16 04:04:01
【问题描述】:

我想知道如何获取最近 30 天内修改文件的总大小。

我找到了这个命令,它只给我过去 30 天内修改文件的列表。

find . -name '*' -mtime -30

这很有用,但我想知道这个列表的总大小。

有人可以帮忙解决这个问题吗?

【问题讨论】:

  • 我已标记将此问题移至超级用户,这是您更有可能(最?)在此问题上获得帮助的堆栈交换站点。
  • @Li-aungYip 绝对不是。正确的是:unix.stackexchange.com
  • @Let_Me_Be :我更喜欢超级用户——它更活跃。但无论如何,SO似乎已经解决了这个问题,所以没关系。 ;)
  • -name '*' 可以删除。它匹配所有文件,并且由于所有谓词都一起进行了与运算,因此与真正的谓词进行与运算是无用的。

标签: file unix command size


【解决方案1】:

也许这样可以:

find . -mtime -30 -exec ls -l {} \;| awk '{s+=$5} END {print "Total SIZE: " s}'

【讨论】:

  • 从来没有。只是原始语句中的复制粘贴错误。我已将其从示例中删除。发现詹斯!
【解决方案2】:

您可以通过 find 输出每个文件的大小来做到这一点,然后 total them up with awk

find . -name '*' -mtime -30 -printf '%s\n' | awk '{s+=$1} END {print s}'

【讨论】:

    【解决方案3】:

    尝试将您的工作 find 命令的输出通过管道传送到 du 以查看输出是否令人满意。您可以使用du 开关-c 生成总数,也可以选择使用-h 使其可读。

    例如:

    <your command> | du -c
    

    变成:

    find . -name '*' -mtime -30 | du -c 
    

    如果你只想要总行:

    find . -name '*' -mtime -30 | du -c | grep "total"
    

    产生输出:

    360     total
    

    并使用du -ch 产生:

    360K    total
    

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 2021-10-28
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      • 2013-02-24
      • 2011-07-25
      相关资源
      最近更新 更多