Как найти самые большие каталоги или самые большие файлы? [Дубликат]

33

На этот вопрос уже есть ответ здесь:

В Linux я ищу команду для вывода списка самых больших файлов и / или самых больших каталогов в каталоге.

Эрик V
источник
Самый полезный инструмент, который я нашел, это xdiskusage ( xdiskusage.sourceforge.net ). Он показывает графически, где файлы - по размеру. Отличный инструмент! (и это работает напрямую с X11)
jcoppens
Как это дублирует некоторый вопрос, который был закрыт как не по теме? Не имеет смысла
Кенорб

Ответы:

17

Из любого каталога:

du -a | sort -n -r

Брент Уорден
источник
1
это показывает отдельные файлы, но вопрос также о каталогах
knocte
du без аргументов суммирует использование диска каталогами. Программа du с параметром -a создает ту же информацию каталога и включает использование диска для отдельных файлов.
Брент Уорден
не могу выполнить сортировку, когда вы находитесь вне пространства: = (
Джонатан Хенсон
28

Следующая команда показывает вам один уровень каталогов и их размеры

du --max-глубина = 1 / путь | сортировать -r -k1,1n

Если один из них действительно выпирает (последний из списка является самым большим из-за sort -r), то вы повторно запускаете команду для этого каталога, а затем продолжаете, пока не найдете проблемный каталог / файл.

Если вам нужно только десять самых больших файлов, просто

find / home -type f -exec du -s {} \; | сортировать -r -k1,1n | голова

Marcin
источник
наибольшее число заканчивается для меня внизу, независимо от того, добавляю я sort -rили нет. Есть ли способ получить наибольшее число на вершине?
Squarecandy
Вы должны указать для сортировки, по какому столбцу вы хотите отсортировать, и что он числовой (не буквенно-цифровой). Вот что бы сделал -k1,1rn. По умолчанию сортировка использует буквенно-цифровую сортировку по первому столбцу.
Марчин
Да, он сортируется правильно, но в порядке возрастания от низкого до высокого числа, независимо от того, включен я sortили sort -r. Я неправильно понимаю, как работает -r? Я думаю, это не имеет большого значения. Ваш пример очень полезен и дал мне необходимую информацию.
Squarecandy
2
У sortменя есть ( sort (GNU coreutils) 8.13в Ubuntu 12.04.3) опция -rне работает, если -nсразу следует -k(-k1,1n ). Этот порядок вариантов работы: sort -rnk1,1.
Пабук
27

Утилита под названием ncduдаст вам информацию, которую вы ищете.

sudo apt-get install ncdu

На OS X его можно установить с помощью Homebrew:

brew install ncdu
Дэвид Пратт
источник
2
+1 Я никогда не слышал об этом раньше - отлично работал и на Mac.
Эндрю Е
Это гораздо более приятное решение, чем оба высших ответа.
AlexLordThorsen
Это потрясающе. Предложите это всем остальным ответам!
Аллен Гингрич
4

дю -ск * | сортировать -nr | голова -1

Это покажет самый большой каталог / файл в каталоге в КБ. Изменение значения заголовка приведет к появлению топовых файлов / каталогов.

Sridharpp
источник
2

Этот пост поможет вам хорошо:

cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
Мац
источник
2

Следующая команда вернет 10 самых больших файлов из данного /path

du -a -h / path | сортировать -h -r | голова -n 10

Мне нравится использовать -hпараметры для удобства чтения. И то duи другое sortнужно иметь -h.

Jiang
источник
1

использование

ls -A | xargs -I artifact du -ms artifact | sort -nr

При желании вы можете добавить трубу и использовать head -5

Абхишек
источник
0

Используйте du. Попробуйте это, чтобы заказать результат:

du | sort -n
гейзенбаг
источник
0

Попробуйте следующий однострочный (отображает 20 самых больших файлов в текущем каталоге):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

или с удобочитаемыми размерами:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

Вторая команда для правильной работы на OSX / BSD (так как sortне имеет -h), вам нужно установить sortс coreutils.

Таким образом, эти псевдонимы полезно иметь в ваших файлах rc (каждый раз, когда вам это нужно):

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
kenorb
источник
-5
du -sh /path * | sort -nr | grep G

G для GIG (чтобы отсеять меньшие) файлы / каталоги

клетка
источник
Здесь перечислены все файлы и папки, показаны их размеры. Он не сортирует размер по
значению
Также он найдет что-нибудь с Gименем в имени файла.
Кевин Панко