Нахождение того, что использует все пространство в * nix


21

Какая последовательность команд скажет мне, какие файлы являются самыми большими, начиная с определенного каталога, включая все подкаталоги? Я хочу знать, где все пространство ушло.

Желательно просто с обычными командами unix'ы.

По возможности старайтесь поддерживать его совместимость с Sun OS 5.10 (возможно, в дополнение к обычным ответам Linux, а не в качестве замены, чтобы сделать его как можно более общим).


Есть два голоса за SU и два за SF. Что является более подходящим? По моему мнению, это может относиться к любому из них.
mmyers

5
@mmyers: передал SU ... SU нужны реальные вопросы!
Shog9

1
Но у SU уже есть очень похожий вопрос! superuser.com/questions/9847/…
Джоник

Ответы:


11

Мне лично нравится использовать, du -sh *чтобы видеть, насколько большой каждый каталог находится в пределах текущего каталога.

Кроме того, вы можете сортировать иметь большие папки первыми: du -shx * | sort -hr. Для du:

  • -s, --summarize: отображать только сумму для каждого аргумента
  • -h, --human-readable: размеры отпечатков в удобочитаемом формате (например, 1K 234M 2G)
  • -x, --one-file-system: пропустить каталоги в разных файловых системах

Для sort:

  • -h, --human-numeric-sort: сравнить читаемые человеком цифры (например, 2K 1G)

Это на самом деле очень полезно с небольшой мод: du -s * | sort -nr.
Алекс Будовски

5
Вы можете сохранить размеры файлов в удобочитаемом формате с помощью du -sh * | sort -hr.
Хорхе Исраэль Пенья

du -shx * | sort -hrэто хорошо, но возвращает только текущий каталог. Как бы я сделал эту систему в целом? И как я мог исключить все под 100мб? Благодарю.
TEM

Это до его вызова в оболочке. Так *, что делает его применить ко всему , в текущем каталоге, но вы можете так же легко изменить , что , например some/other/path/*, или если вы просто хотите , чтобы запустить его на один каталог в целом, а затем опустить *шаблон Глоб. Что касается фильтрации, возможно, задайте отдельный вопрос.
Хорхе Исраэль Пенья

Чтобы запустить его рекурсивно для всей системы, вы можете связать его с findкаким-либо корневым каталогом и использовать его -execпараметр для вызова du. Сама findпрограмма, вероятно, может фильтровать по размеру файла что-то вроде size +100M. Смотрите этот вопрос . Может быть что-то вроде find / -size +100M -exec du -sh {} \; | sort -hr, хотя это не проверено.
Хорхе Исраэль Пенья

13

ncdu

Это просто здорово: CLI, на основе ncurses, быстро, просто. Установите его с помощью sudo apt install ncdu.

введите описание изображения здесь


5

в основном вы можете использовать команду du. что-то вроде этого

du -a /home | sort -rn |head -1

пожалуйста, посмотрите на справочную страницу или info du для получения дополнительной информации.

Или вы можете использовать GNU find.

find /home/ -type f -printf "%s:%p\n" | sort -t":" -rn| head -1  

Есть ли у 'find' в Sun OS 5.10 альтернатива -printf, которую я могу использовать?
Алекс Будовски

Кроме того, есть ли способ получить первую команду (du ...) для фильтрации каталогов? Меня действительно интересуют только файлы, как с вашей второй командой.
Алекс Будовски

5

Не командная строка, но все еще unix'y: kdirstat

Я использую его, чтобы узнать, куда уходит все пространство, и мне это нравится намного лучше, чем анализатор использования дисков (он же Baobab). Это одно из немногих приложений KDE, которое допускается в моей среде GNOME ;-)

введите описание изображения здесь

Согласно kdirstat.sourceforge.net он работает на Solaris.

Хотя KDirStat является программой KDE, она отлично работает на любом рабочем столе X11, то есть работает на Linux, BSD и многих других системах типа Unix (Solaris, HP-UX, AIX, ...).


В убунту: k4dirstat и qdirstat. Последний более актуальный. Мне не нравится, что они позволяют удалять папки
develCuy

4

Philesight запускается из командной строки и приводит к появлению веб-сервера PNG plus, поэтому вы можете просматривать его в Интернете.

Я нашел это через этот список программ использования диска. Полезный список программ, кроме ncdu(который маленький, быстрый и только для командной строки): http://www.makeuseof.com/tag/how-to-analyze-your-disk-usage-pattern-in- Linux /


3
du -a | sort -n

сделал бы работу. Используя баобаб (он входит в состав утилит gnome, так что он, вероятно, уже установлен в вашей системе), вы получите довольно хорошее графическое представление используемого пространства.


Есть ли причина использовать -g вместо -n? «Используйте эту опцию, только если нет альтернативы; она намного медленнее, чем --numeric-sort (-n) и может потерять информацию при преобразовании в число с плавающей запятой.» Gnu.org/software/coreutils/manual/html_node/…
оттуда

@therefromhere: я использовал man-страницу, которая не так многословна, как сайт, на который вы ссылались. Я просто выбрал первый вариант, который работал для конкретного случая. Но ты прав; Я отредактировал мой ответ. Благодарность!
Балфа

3

Анализатор использования диска

Если вы используете дистрибутив на основе Debian / Ubuntu, в репозиториях есть несколько графических интерфейсов, которые вы можете найти с помощью synaptic.

введите описание изображения здесь


3
du . -ha | sort -hr
  • -a, --all: запись рассчитывается для всех файлов, а не только для каталогов
  • -h, --human-readable: размеры отпечатков в удобочитаемом формате (например, 1K 234M 2G)

1
Я нахожу тот факт, что вы можете произнести эту команду очень интересным. Это тоже звучит смешно.
jtbandes

2
-1, это неправильно. «-H» в команде du прерывает сортировку.
оттуда

1
Это не так, просто не переносимо. -h это GNUism. Вместо этого используйте -k с Sun OS.
Людвиг Вайнцерль

+ Людвиг, я не думаю, что ты понял. Добавление -h делает числа понятными человеку, поэтому они больше не являются числами, которые могут использоваться командой сортировки. например, вещи будут отсортированы следующим образом: «760K 784M 788K 860K 944K 985M» Должно быть du -ha | sort -hrили du -ha | gsort -hr(на OSX после установки основных утилит)
Джерри

2

Полуночный командир

Если вам нужен вывод списка с приятным графическим интерфейсом и опциями навигации, установите Midnight Commander ( mcв большинстве менеджеров пакетов) и отметьте «показать размеры каталогов» в командном меню. Также вы можете Ctrl+ space.

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.