Відповіді:
GNU duмає --block-sizeможливість:
du -csh --block-size=1G .
Як зазначив sajb , опущення аргументу розміру блоку автоматично масштабує вихід (і відображає блок). Використовуючи будь-який аргумент розміру блоку, відображається число, але він опускає одиницю.
-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блоках -байтів.