Ответы:
У GNU du
есть --block-size
опция:
du -csh --block-size=1G .
Как отметил Сайб , пропуск аргумента размера блока автоматически масштабирует вывод (и отображает единицу измерения). При использовании любого аргумента размера блока отображается число, но не указывается единица измерения.
-h
не работаете. Это поддерживаемая опция, которая делает вывод «читаемым человеком» (т.е. с единичными суффиксами и масштабируется). Но это правда, что он игнорируется, когда --block-size
используется. Это отмечено в моем ответе.
Для удобства вот ссылка на 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
байт-блоках.