
Я хотел проверить размер резервной копии моей файловой системы.
ls -lia backup.tgz
17 -rw-r--r-- 1 root root 84972633333 мај 28 10:05 backup.tgz
С размером блока M
ls -l --block-size=M backup.tgz
-rw-r--r-- 1 root root 81037M мај 28 10:05 backup.tgz
Наконец с размером блока G
ls -l --block-size=G backup.tgz
-rw-r--r-- 1 root root 80G мај 28 10:05 backup.tgz
Может ли кто-нибудь объяснить такую огромную разницу?
решение1
Значения показаны с использованием степеней 2, а не степеней 10; так, 1M составляет 1 048 576 байт, а 1G составляет 1 073 741 824 байта.
Если разделить соответствующим образом, то значения будут соответствовать ls
выходным (округленным):
$ echo $((84972633333.0/1024/1024))
81036.218007087708
$ echo $((84972633333.0/1024/1024/1024))
79.136931647546589
Вместо этого можно указать KB
, MB
и GB
т.д., чтобы использовать степени числа 10:
ls -l --block-size=MB backup.tgz
Видетьраздел о размерах блоковcoreutils
Подробности смотрите в документации.