`ls -lah` 中的 `-h` 在 Unix 中如何工作?

How does `-h` in `ls -lah` work in Unix?

当我使用 ls -lals -lah 时,我似乎对相同的文件得到了不同的编号。

gillin@mt:/home/vanilla/wmt-data/lm$ ls -lah *
-rw-rw-r-- 1 vanilla vanilla 68G Aug  5 03:57 lm.6gram.de.arpa.gz
-rw-rw-r-- 1 vanilla vanilla 25G Aug  4 07:32 lm.6gram.fr.arpa.gz
-rw-rw-r-- 1 vanilla vanilla 29G Aug  5 07:41 lm.6gram.ru.arpa.gz
gillin@mt:/home/vanilla/wmt-data/lm$ ls -la *
-rw-rw-r-- 1 vanilla vanilla 72726733721 Aug  5 03:57 lm.6gram.de.arpa.gz
-rw-rw-r-- 1 vanilla vanilla 26482284407 Aug  4 07:32 lm.6gram.fr.arpa.gz
-rw-rw-r-- 1 vanilla vanilla 30777650366 Aug  5 07:41 lm.6gram.ru.arpa.gz

-h参数如何对文件大小进行四舍五入?

为什么 -lah 尺寸与 -la

尺寸如此不同

他们不是 "so different"。 -h 是 "human readable":

30777650366 -> 30056299K -> 29351M -> 28G for powers of 2
30777650366 -> 30777650K -> 30056M -> 30G for powers of 10

如果您使用 RTFM (man ls):

  -h, --human-readable
         with -l and/or -s, print human readable sizes (e.g., 1K 234M 2G)

  --si   likewise, but use powers of 1000 not 1024