Назад | Перейти на главную страницу

Как мне увидеть du в ГБ вместо МБ в Linux?

Это работает:

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