Это работает:
du -cshm .
Но это не удается:
du -cshg .
Как я могу увидеть его в ГБ?
GNU du
имеет --block-size
вариант:
du -csh --block-size=1G .
Так как сайб отмечалось, что пропуск аргумента размера блока автоматически масштабирует вывод (и отображает единицы измерения). Использование любого аргумента размера блока отображает число, но опускает единицу измерения.
Для удобства вот ссылка на macOS:
-h
"Человекочитаемый" вывод. Используйте суффиксы единиц измерения: Байт, Килобайт, Мегабайт, Гигабайт, Терабайт и Петабайт.-k
Отображение количества блоков в блоках размером 1024 байта (1 Кбайт).-m
Количество отображаемых блоков в блоках размером 1 048 576 байт (1 Мбайт).-g
Отображение количества блоков в 1 073 741 824 байтах (1 Гбайт).Вот как работают различные варианты с учетом 1,234,567 KB
файл:
$ mkfile -n 1234567k file.txt
$ du file.txt
2469136 file.txt
$ du -k file.txt
1234568 file.txt
$ du -m file.txt
1206 file.txt
$ du -g file.txt
2 file.txt
$ du -h file.txt
1.2G file.txt
Также стоит отметить, что вы можете настроить неявное поведение, хотя BLOCKSIZE
переменная окружения:
BLOCKSIZE
Если переменная средыBLOCKSIZE
установлен, а-k
опция не указана, количество блоков будет отображаться в единицах блока этого размера. ЕслиBLOCKSIZE
не установлен, и-k
опция не указана, количество блоков будет отображаться в512
-байтовые блоки.
Использовать du -B1073741824
но будьте осторожны, он дает результат только в целочисленных единицах и не будет иметь смысла с -h
В дополнение к предыдущим ответам, он также, кажется, отличается между разными версиями coreutils (или локалью?), Поскольку на моем хосте я получаю:
$ du -csh .
32G .
32G total
$ du --version | head -1
du (GNU coreutils) 7.4