118

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

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

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

9 ответов9

192

Если вы хотите показать все каталоги в текущем каталоге:

$ 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 .

16

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

du -hd 2 /* 

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

12

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

du -h --max-depth=1 .

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

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

5

Пытаться:

$ du -s ./f1

или же

$ du -sh ./f1

для более дружественных читаемых размеров.

2

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

1

Основываясь на принятом ответе, эта команда покажет вам размеры папок в каталоге, а также перечислит их по размеру, чтобы вам было легче их интерпретировать:

$ du -sh */ | sort -rn
1

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

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

0

Вот скрипт POSIX, который будет работать с:

  • Файл
  • файлы
  • Каталог
  • Справочники
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

Источник

0

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

gdu folder -shL --exclude=.git

где

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

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

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