令人困惑的单位:kB和KiB

ubuntu 12.04目前ls -l 默认是1024为单位的KiB、MiB和GiB(显示K、M、G):

SIZE may be (or may be an integer optionally followed by) one of fol‐lowing: KB 1000, K 1024, MB 10001000, M 10241024, and so on for G, T, P, E, Z, Y.

而且有个选项–si可以显示以1000为单位的,-s显示文件占的块数(4KiB)。

但是我亲自试了一下,发现ls显示大小的小数部分貌似不是正常的四舍五入。--!!! 终于发现规律了,不是四舍五入,而是精确到位数后再加一,把剩下的小数进一,确保不小于原来大小(可以大,但不能小--!!!)。

例如:

$ls -l
-rw-rw-r--  1 xx xx  604066417  xx xx xx OpenWrt-xxx
$ll
-rw-rw-r--  1 xx xx  577M  xx xx xx OpenWrt-xxx

所以直接就进位了:

604066417 byte = 576.0826272964478 MiB = 577MiB

听说ubuntu 13.04要调整成1000为单位的KB、MB、GB。

http://forum.ubuntu.org.cn/viewtopic.php?f=49&t=401481

http://askubuntu.com/questions/465/is-it-true-that-ubuntu-will-no-longer-measure-file-size-unit-as-byte-megabyte

https://wiki.ubuntu.com/UnitsPolicy

http://en.wikipedia.org/wiki/Mebibyte