92

Я хочу получить список каталогов и их размеры в виде списка, например, как вы получаете, когда вы делаете ls -l .

Дело в том, что есть однострочная команда, которая может это сделать? Я вижу, что другие имеют длинные команды только для вывода этого. Это слишком долго.

Какая команда может сделать это или комбинация команд, которые можно легко набрать? du -h дает это, но он отображает все подпапки, что не то, что я хочу. только текущие каталоги папок.

4 ответа4

118

Попробуй это

du -h --max-depth=1

Выход

oliver@home:/usr$ sudo du -h --max-depth=1
24M     ./include
20M     ./sbin
228M    ./local
4.0K    ./src
520M    ./lib
8.0K    ./games
1.3G    ./share
255M    ./bin
2.4G    .

альтернатива

Если --max-depth=1 слишком длинная на ваш вкус, вы также можете попробовать использовать:

du -h -s *

Он использует -s (--summarize) и по умолчанию печатает только размер самой папки. Передавая все элементы в текущем рабочем каталоге (*), он выдает аналогичный результат, как --max-depth=1 :

Выход

oliver@cloud:/usr$ sudo du -h -s *
255M    bin
8.0K    games
24M     include
520M    lib
0       lib64
228M    local
20M     sbin
1.3G    share
4.0K    src

Разница неуловима. При первом подходе будет отображаться общий размер текущего рабочего каталога и общий размер всех содержащихся в нем папок ... но только до глубины 1.

Последний подход будет рассчитывать общий размер всех пропущенных предметов в отдельности. Таким образом, он включает символическую ссылку lib64 в вывод, но исключает скрытые элементы (имя которых начинается с точки). В нем также отсутствует общий размер текущего рабочего каталога, поскольку он не был передан в качестве аргумента.

56

Вы, вероятно, хотите увидеть каталоги, упорядоченные по размеру:

$ du -hs * | sort -hr

856M    lib
746M    share
612M    lib64
312M    src
267M    java
239M    bin
179M    sbin
173M    local
93M     i686-w64-mingw32
72M     libexec
26M     include
20M     puppet
772K    X11R6
20K     man
4.0K    games
4.0K    etc
0       tmp
6

Выведите размеры всех папок и скрытых файлов на диске:

el@dev /home/el $ du -sh `ls -a`
258M    .
265M    ..
4.0K    .classpath
258M    .git
4.0K    .gitignore
9.0K    nbactions.xml
12K     README
20K     .README.swp
4.0K    run.sh
23K    XmlPostPropagate.php
1

Стоит упомянуть команду оболочки NCurses Disk Usage .

Ncdu - это анализатор использования дисков с интерфейсом ncurses. Он предназначен для поиска космических свиней на удаленном сервере, где у вас нет полной графической настройки, но это полезный инструмент даже на обычных настольных системах. Ncdu стремится быть быстрым, простым и легким в использовании и должен быть в состоянии работать в любой минимальной POSIX-подобной среде с установленными ncurses.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .