Як я можу обчислити розмір каталогу?


Відповіді:


230
du -s directory_name

Або щоб отримати зрозумілий для людини вихід:

du -sh directory_name

Цей -sпараметр означає, що він не буде розміщувати розмір для кожного підкаталогу, а лише загальний розмір.


7
Фактично duодиницею за замовчуванням є 512-байтові блоки відповідно до POSIX та кілобайт на Linux (якщо не встановлена ​​змінна середовище POSIXLY_CORRECT) або з du -k.
Жиль

3
@Gilles: Хороший улов. Я видалив біт "кількості байтів" зі своєї відповіді.
sepp2k

1
працював за призначенням
skidadon

1
якщо каталог дуже великий і має багато підкаталогів, це займає багато часу ... майже 1 хв .. це нормально? чи є спосіб швидше отримати розмір?
yeahman

2
Мені потрібно було обчислити розмір моєї папки «сумка», du -sh bagпрацював ідеально!
António Almeida

7

Хоча використання окремого пакета, такого як ncdu, може спрацювати, однакове порівняння багатьох папок можна виконати певною мірою, просто надавши списку папок для збільшення розміру. Наприклад, для порівняння каталогів вищого рівня у вашій системі ...

cd /    
sudo du -sh ./*

2
Простіше кажучи,du -sh /*
roaima



1

Спробуйте

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

Це допомагає знайти великі каталоги, які потім просіювати за допомогою du -sh ./*


0

Ви також можете використовувати ls -ldh:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l - для довгого переліку; -d призначений для відображення інформації про dir, а не для вмісту dir, -h - для відображення розміру у читаному для людини форматі.


4
Це не правильно, людина, яка запитує, чітко шукає слід каталогу та його вмісту на диску. Відповідь @ sepp2k правильна.
вибух

1
Команда ls -ldh показує лише розмір структури inode каталогу. Метрика - це відображення розміру таблиці індексів імен файлів, але не фактичного розміру вмісту файлу в каталозі.
linbianxiaocao

0

Я завжди встановлюю пакет "ncdu" і бачу весь вихід усіх каталогів із графічним поданням. Це тому, що мені зазвичай потрібно знати, що займає найбільше дискового простору на моїх машинах, незалежно від того, скільки підсумовує окремий каталог.

Використання: sudo ncdu /(Вам не потрібні sudoпапки, на яких ви прочитали дозвіл).

Пройде певний час для сканування статистики використання диска у всій файловій системі. У ньому є гарне графічне зображення командного рядка та включена навігація по клавіатурі за допомогою клавіш зі стрілками, як-от заглиблюючись у сканований шлях. Ви також можете видалити елементи, натиснувши D.



0

du -hd1

перерахує у читаному для людини форматі розміри всіх каталогів, наприклад

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config

0

Я спробував із командою нижче, оскільки вже надана найкраща відповідь

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

вихід

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.