Как я могу найти самые большие каталоги в Unix / Ubuntu?

34

Есть ли способ в Unix увидеть самые большие каталоги на диске?

Мне нужно знать, почему я почти закончил с местом на сервере, и я не знаю, где используется большая часть пространства ..

Благодарность

aneuryzm
источник
2
возможный дубликат поиска самых больших каталогов / файлов рекурсивно
приостановлен до дальнейшего уведомления.
Вот хороший пример : unix.stackexchange.com/questions/4681/… - он говорит, что использовать, du | sort -hзатем использовать tail- или, вы можете использовать sort -rhтак, чтобы самые большие были в начале, и вы можете использовать, moreчтобы увидеть его. Это отлично работает на Ubuntu 16.04 LTS в августе 2017 года.
SDsolar

Ответы:

54

Попробуйте: du --max-depth=7 /* | sort -n- он не просто скажет вам каталоги, и там будут дубликаты, но он перечислит все 7 уровней и отсортирует их по размеру.

Джеймс Л
источник
13
7 уровней одновременно могут быть ошеломляющими. Я хотел бы начать с --max-depth=0(или, скорее, использовать --summarize/ -s), а затем вручную изучить самые большие каталоги.
Стивен Понедельник
Хорошая мысль, просто выбрал это число, так как это то, как далеко я обычно заканчиваю, прежде чем я найду что-то полезное.
Джеймс Л
3
как насчет du -cs * | sort -nобзора, какой каталог больше?
Лоренцог
Я предпочитаю:du -ch | sort -nr | head -10
Склавить
47

Мой любимый инструмент для этой задачи - ncdu .

пример экрана ncdu

halp
источник
3
Ницца. Это работает почти так же, как я бы делал это вручную (с помощью du | sort), но с ПУТИ меньше печатать.
Стивен Понедельник
Это намного лучше. просто установите ncdu и введите команду ncdu в каталог, который вы хотите проанализировать, он работает очень быстро.
Джамол
6

Я предлагаю вам использовать баобаб , который даст вам графический обзор использования вашего диска. Его также можно использовать для удаленной папки (через ssh, ftp, ...), например, для сканирования использования диска на удаленном сервере.

Изменить: Если вы хотите исследовать использование диска непосредственно на сервере с доступом к оболочке, а не удаленно, и вам нужен более удобный инструмент du, вы также можете попробовать durep, который сгенерирует отчет об использовании диска. с гистограммами.

uloBasEI
источник
круто, но у меня есть доступ к оболочке только на моем VPS (мало ОЗУ)
aneuryzm
3

Я обычно использую что-то вроде этого:

du -ch / | sort

Вы можете применить ограничение по глубине, используя --max-deep =, если вы не хотите видеть дальше определенного уровня от вашей цели, например так:

du -ch --max-depth=4 /

источник
0

Попробуйте df& du -sh /. И рекурсивно du -sh. Не лучшее решение, хотя.


источник
0

Что-то типа

sudo du / | сортировать -n

Быстрый ответ (последние записи - самые большие файлы / каталоги)

Нью-Джерси
источник
2
Определить быстро? По моему опыту это обычно занимает не менее 5-10 минут.
Джеймс Л
0

# cd /; du -shb | sort -nr > /root/home/disk-space-report.txt

LawrenceC
источник
0

Я всегда использую синтаксис как

du -sm --max-depth=4 /path/i/want/to/drill | sort -nr | head -n 20,

Параметры max-глубины и напора, конечно, могут варьироваться, но в приведенном выше списке перечислены 20 самых больших каталогов.

Янне Пиккарайнен
источник
0

Я регулярно работаю du -dak > du-dak.outна вершине каждой файловой системы. Затем я могу получить графический дисплей с xdu < du-dak.out. Это можно сделать удаленно после передачи файла du-dak.out по сети, если у вас есть только текстовый доступ.

http://sd.wareonearth.com/~phil/xdu/

jlliagre
источник