Як я бачу du в GB замість MB у Linux?


24

Це працює:

du -cshm .

Але це не вдається:

du -cshg .

Як я бачу це в одиниці ГБ?

Відповіді:


41

GNU duмає --block-sizeможливість:

du -csh --block-size=1G .

Як зазначив sajb , опущення аргументу розміру блоку автоматично масштабує вихід (і відображає блок). Використовуючи будь-який аргумент розміру блоку, відображається число, але він опускає одиницю.


У (GNU coreutils) 8,25 -h не працювало, тоді як розмір блоку = 1G зробив!
Флоріан Штрауб

@FlorianStraub: Я не впевнений, що ти маєш на увазі про те, що ти -hне працюєш. Це підтримуваний варіант, який призводить до того, що результат буде "читабельним для людини" (тобто з одиничними суфіксами та масштабуванням). Але це правда, що вона ігнорується при --block-sizeвикористанні. Це відмічено у моїй відповіді.
Призупинено до подальшого повідомлення.

моє погано: я мав на увазі "-g не працював"
Флоріан Штрауб

4

Для зручності, ось посилання на 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блоках -байтів.


1

Використовуйте, du -B1073741824але будьте обережні, це дає результат лише в цілих одиницях і не матиме сенсу-h


0

На додаток до попередніх відповідей, схоже, це відрізняється між різними версіями coreutils (або локалі?), Оскільки на моєму хості я отримую:

$ du -csh .
32G     .
32G     total
$ du --version | head -1
du (GNU coreutils) 7.4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.