Unix命令行:如何获取过去30天内修改过的文件的总大小

时间:2012-04-02 13:28:20

标签: file unix command size

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

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

find . -name '*' -mtime -30

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

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

3 个答案:

答案 0 :(得分:7)

也许这样做:

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

答案 1 :(得分:0)

您可以通过查找输出每个文件的大小,然后total them up with awk

来完成此操作
find . -name '*' -mtime -30 -printf '%s\n' | awk '{s+=$1} END {print s}'

答案 2 :(得分:0)

尝试将工作查找命令的输出汇总到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