Відповіді:
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
блоках -байтів.