Ответы:
У 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байт-блоках.