(ls) 命令不会显示确切的大小 - 奇怪的输出

(ls) 命令不会显示确切的大小 - 奇怪的输出

我试图以精确的字节为单位查找硬盘上文件的大小,但每当大小变得太大时,数字就会变得很奇怪(例如 1.98329e+12)。我可以阻止它这样做或将其转换为精确的字节吗?

命令是

ls -lR | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'

确切字节的图片:精确字节的图片

奇怪数字的图片:奇怪的数字图片

  • 停止显示确切字节之前的截止点似乎约为 500GB
  • du -sb无论目录有多大,该命令都会正确显示确切的字节。
  • 我尝试过 Ubuntu Gnome 15.10 64 位(日语和英语)和 Linux Mint 17.3 Cinnamon 64 位(日语)
  • 我的驱动器是 NTFS,所以我尝试将其中一个格式化为 ext4 并复制文件。结果与 NTFS 相同。

答案1

ls这与 输出数字的方式无关,一切都与awk.

的手册页awk显示默认的数字输出格式是.6g,这意味着将使用指数格式(您看到的)或小数以 6 位精度输出双长度浮点数。

您可以将其更改为显式输出格式,如下所示

echo 123456789012345 | awk '{printf "Total: %.6g\n", $1}'
Total: 1.23457e+14

echo 123456789012345 | awk '{printf "Total: %.0f\n", $1}'
Total: 123456789012345

相关内容