Вывести список размеров текущей папки с помощью терминала?


134

Я хочу список папок из текущего каталога или тот, который я указываю с их размером.

Я пробовал с du, но я получаю только размер директорий, которые я определяю (du. .Ff), а ls не показывает размер папок.

Как мне сделать это без каких-либо сценариев?


не звучать как придурок, но «человек дю»;)
Якуб

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
Где -s означает суммирование, отображает общее количество, а -h означает удобочитаемое человеком
wranvaud

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


1
@AntonTarasenko: shopt -s dotglob док
Деннис Уильямсон,

18

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

du -hd 2 /* 

Примечание: эта команда выставит два верхних уровня каталогов за пределы вашего корня. Это включает в себя прохождение одного уровня в ваши тома и перечисление итоговых размеров каждого каталога верхнего уровня в каждом из подключенных томов. В зависимости от того, что вы добавили, выполнение этой команды может занять некоторое время.


13

Другой подход - опция -max-глубина.

du -h --max-depth=1 .

Перечислит все каталоги и файлы в текущей папке с размером.

Глубина 2 будет перечислять еще один уровень папок.


4
На Mac это du -hd 2 .2 уровня глубины.
Райан

О да. И, вероятно, на FreeBSD. Спасибо за информацию.
Матиас Крулл


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.