使用 find 按比 X 天新的文件计算总已用磁盘空间 TB

Posted

技术标签:

【中文标题】使用 find 按比 X 天新的文件计算总已用磁盘空间 TB【英文标题】:calculate in TB total used disk space by files newer than X days using find 【发布时间】:2020-06-08 06:37:36 【问题描述】:

我有一个包含数千个大文件的文件夹,我想查找过去 X 天内创建的总已用磁盘空间。

我试过这个命令:

find . -type f -mtime -30 -printf '%s\n' | awk 'total=total+$1ENDprint total/1024'

正如@k-h 提到的这里calculate total used disk space by files older than 180 days using find

该命令的输出是 9.84347e+09,我不确定如何将输出更改为 TB 磁盘大小。

请指教。 谢谢, 亚龙

【问题讨论】:

这可能会有所帮助:unix.stackexchange.com/questions/44040/… 您对文件大小或磁盘空间感兴趣...这是两个不同的东西。 您好,欢迎来到 Stack Overflow。您希望以 TB 打印结果,并且您可以使用以 kB 打印结果的命令(%s 返回字节(请参阅man find))...所以在我看来,这是一个简单的任务。我非常相信你能处理好这个。 我试试@kvantour,谢谢! 【参考方案1】:

虽然不是完全一样的逻辑,但我在这里解释一下:

 echo -n \(; find -type f -mtime -30 -printf "%s+"; echo 0\)/1024/1024/1024/1024;  | bc

让我们分解一下:

echo -n \( - 打印 ( 没有换行符。 find … - 与 + 符号一起用于计算的相同 ol' 命令。 echo 0\)/1024… - 我们正在打印 0,因此表达式不会以 + 符号结尾,打印右括号,然后除以 1024 四次以获得相关结果。 | bc - 这是计算工具,您可以简单地将公式传送到该工具,尝试运行 echo 1+2 | bc 并使用它来理解它的概念。

玩得开心,而且名字很酷 BTW :)

【讨论】:

谢谢@yaron

以上是关于使用 find 按比 X 天新的文件计算总已用磁盘空间 TB的主要内容,如果未能解决你的问题,请参考以下文章

新的一天新的发现

31服务器磁盘内存cpu使用率监控

HDFS 空间分配(大小/已用/可用)

LVM扩展空间步骤

使用 du 检查 Linux 上已用的磁盘空间

Linux磁盘管理