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

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

我试过这个命令:

find . -type f -mtime -30 -printf '%s\n' | awk '{total=total+$1}END{print 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,谢谢!

标签: awk find command printf filemtime


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 2019-12-12
  • 2014-04-23
  • 1970-01-01
相关资源
最近更新 更多