使用 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的主要内容,如果未能解决你的问题,请参考以下文章