尝试了解du
命令的基础知识对我来说并不那么简单。例如,有一个-h
选项被定义为以“人类可读格式”打印。问题是此选项更改了显示值:
~$ du --apparent-size -sh Documents/
376M Documents/
~$ du --apparent-size -s Documents/
384767 Documents/
通常 384767 应四舍五入为 385M。那么 376M 和 385M 哪个是正确的值呢?
更糟 :
~$ du -bsh Documents/
376M Documents/
~$ du -bs Documents/
394001294 Documents/
如果除以 1000,是的,但这不是 du 向您展示的内容。它使用 IEC(二进制)单位,其中1 kB = 1024 字节;1 MB = 1024 kB;等等。其他一些程序会将它们显示为 KiB、MiB 等。
(大多数存储都使用 2 的幂大小的块,例如 512b 或 4096b 扇区,因此 IEC 二进制单位比 SI 十进制单位更适合。)
不带“-h”选项的“du”的默认单位是 1024 字节块(等于 1 kB),因此它会
384767 / 1024 = 375.749…
四舍五入到 376 MB(如果您愿意,也可以是 MiB)。同样,当您使用“-b”选项以字节开头时,它是394001294 / 1024 / 1024
.--si
如果您需要十进制单位(“HDD 制造商”单位),请添加该选项。这也适用于df -h
和ls -lh
(即“coreutils”中的工具),尽管不一定适用于其他程序 - 有些程序总是使用 IEC 单位而没有切换选项。