Перерахуйте поточні розміри папки з терміналом?


134

Я хочу список папок із поточного каталогу або тієї, яку я вказую з їх розміром.

Я спробував з du, але я отримую лише розмір вказаних у мене каталогів (du ./f1), а ls не показує розмір папок.

Як це зробити без будь-якого сценарію?


не звучати як поштовх, але 'man du';)
Якуб

5
Дякую ;-), але я вже спробував і нічого не зміг знайти. І спробуйте Googling du!
Кевін

Відповіді:


212

Якщо ви хочете показати всі каталоги в поточному каталозі:

$ du -sh */
788K    foo/
500K    bar/
931K    baz/

Щоб показати їх, починаючи з іншого каталогу:

$ du -sh /path/to/dir/*/
48K     /path/to/dir/dir1/
4.0K    /path/to/dir/dir2/
6.7M    /path/to/dir/dir3/
20K     /path/to/dir/dir4/
8.0K    /path/to/dir/dir5/
44K     /path/to/dir/dir6/

Якщо ви хочете переконатися, що каталоги з іменами, що починаються з крапки, додаються shopt -s dotglobспочатку.


Дякую всім чудові відповіді, але ця найпростіша. Я забув закінчення / у своїх тестах.
Кевін

1
Де -з означає підбити підсумки, відобразити загальне, а -h означає читабельне для людини
wranvaud

2
Сортувати папки за розміром: du -s */ | sort -n.
Антон Тарасенко


1
@AntonTarasenko: shopt -s dotglob doc
Денніс Вільямсон

18

На Mac, параметр --max-глибина замінюється на -d [deep]. Отже, щоб побачити людський читацький список вашого кореневого диска плюс два рівні глибоко, скористайтеся наступним:

du -hd 2 /* 

Примітка: ця команда відкриє два найпопулярніші рівні каталогу у вашому корені. Сюди входить проходження одного рівня до ваших томів та відображатиметься підсумкові розміри кожного каталогу верхнього рівня у кожному з доданих томів. Залежно від того, що ви додали, ця команда може зайняти деякий час, щоб виконати.


13

Іншим підходом є варіант - maxx глибина.

du -h --max-depth=1 .

Буде перераховано всі каталоги та файли в поточній папці з розміром.

У глибині 2 було б вказано ще один рівень папок.


4
На Mac це du -hd 2 .2 рівні глибини.
Райан

Ага так. І, мабуть, і на FreeBSD. Дякуємо за інформацію.
matthias krull


2

$ du --max-depth=1 /var/www/ | sort -n -r


3
Коли ви додаєте відповідь на старе питання з існуючими відповідями, добре пояснити, чим відрізняється ваша відповідь, і включити пояснення, щоб це не була лише відповідь команди.
Джейсон Аллер

3
Чи можете ви розгорнути свою відповідь, щоб пояснити, що роблять параметри?
fixer1234

2

Варто згадати команду оболонки NCurses Disk Usage .

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


2

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

$ du -sh */ | sort -rn

1

На Mac можна встановити реалізацію GNU (Linux) за duдопомогою Homebrew ( brew install coreutils). Тоді наприклад:

gdu folder -shL --exclude=.git

де

  • gdu- ім'я, яке надається для реалізації GNU du(за замовчуванням Homebrew не приховує /usr/bin/du);
  • s створює загальну суму для вказаної папки (опустіть, якщо ви хочете побачити розбиття);
  • h виводить людиночитані розміри;
  • L слід за посиланнями;
  • --exclude=.git виключає каталог git у вказаній папці (це лише приклад).

Ви можете ігнорувати більше папок, додавши --exclude=blah. Ви також можете вказати відразу декілька папок (тобто gdu folder1 folder2 ...), і в цьому випадку ви можете об'єднати всі підсумкові дані в один розмір за допомогою параметра c.


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