使用 find 按比 X 天新的文件计算 TB 总使用磁盘 space
calculate in TB total used disk space by files newer than X days using find
我有一个包含数千个大文件的文件夹,我想找出最近 X 天创建的已用磁盘总数 space。
我试过这个命令:
find . -type f -mtime -30 -printf '%s\n' | awk '{total=total+}END{print total/1024}'
如@k-h 所述
calculate total used disk space by files older than 180 days using find
该命令的输出是 9.84347e+09,我不确定如何将输出更改为 TB 磁盘大小。
请指教
谢谢,
亚龙
嗯,逻辑不太一样,但我在这里解释一下:
{ 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:)
我有一个包含数千个大文件的文件夹,我想找出最近 X 天创建的已用磁盘总数 space。
我试过这个命令:
find . -type f -mtime -30 -printf '%s\n' | awk '{total=total+}END{print total/1024}'
如@k-h 所述
calculate total used disk space by files older than 180 days using find
该命令的输出是 9.84347e+09,我不确定如何将输出更改为 TB 磁盘大小。
请指教
谢谢,
亚龙
嗯,逻辑不太一样,但我在这里解释一下:
{ 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:)