32

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

10 ответов10

28

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

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

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

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

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

26

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

sudo apt-get install ncdu

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

brew install ncdu
17

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

du -a | sort -n -r

4

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

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

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 .

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'
-5
du -sh /path * | sort -nr | grep G

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

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