Как найти самые крупные директории в Linux?

Управление дисковым пространством в Linux часто включает в себя определение самых крупных директорий, которые занимают значительное место на диске. В этом статье показано, как использовать командные инструменты, такие как du и sort, чтобы быстро найти самые большие директории на вашем Linux-системе, что поможет вам оптимизировать использование дискового пространства и улучшить производительность системы.

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

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

Приглашаю вас принять участие в тестировании моего бота EasyTools в Telegram.

EasyTools это централизованный бот, который поможет получить необходимую информацию не выходя из мессенджера.

Многообразие IT-инструментов доступно во вкладке «Утилиты».

Команда du

Команда du (disk usage) — это проверенный способ узнать, сколько места занимает директория. Она как старый детективный плащ, с которым трудно расстаться — всегда надежна.

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

du -sh /path/to/directory

Опция -s предоставляет вам сводку вместо списка всех файлов, а -h делает вывод удобочитаемым.

Поиск основных виновников

Что делать, если мы хотим найти самые большие директории в определенном пути? Тут на помощь приходит сортировка:

du -h /path/to/directory | sort -rh | head -n 5

Эта команда выведет список пяти самых крупных директорий в порядке убывания размера. Команда sort становится здесь нашим другом: опция -r наведет порядок (ведь мы хотим видеть самые большие, а не самые маленькие), а -h позволит читать числа в удобном формате.

Вывод

1.5G /path/to/directory/subdir1
1.2G /path/to/directory/subdir2
800M /path/to/directory/subdir3
. . .

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

du -h --max-depth=1 | sort -rh | head -n 5

Пример

1.5G ./dir1
1.2G ./dir2
800M ./dir3
600M ./dir4
450M ./dir5

Команда ncdu

Для тех, кто хочет сочетание обоих миров — работу в терминале с простым в использовании интерфейсом — ответом будет ncdu (NCurses Disk Usage). Это как если бы команда du пошла в спортзал и вернулась с новым пользовательским интерфейсом.

Этапы установки

Debian/Ubuntu

sudo apt-get update
sudo apt-get install ncdu

Fedora

sudo dnf update
sudo dnf install ncdu

Для CentOS/RHEL 8 и более новых версий используйте dnf

sudo dnf install epel-release
sudo dnf update
sudo dnf install ncdu

Arch Linux

sudo pacman -Syu
sudo pacman -S ncdu

OpenSUSE

sudo zypper refresh
sudo zypper install ncdu

Alpine Linux

sudo apk add ncdu

Gentoo

sudo emerge --update --newuse ncdu

И запустите его командой:

ncdu /path/to/directory

После запуска вы увидите навигируемый интерфейс, показывающий ваши директории, их размеры, а также возможность удаления файлов прямо из ncdu. Однако будьте осторожны: большие возможности требуют большой ответственности.

FAQ: Как найти самые большие директории в Linux?

Можно ли использовать команду du для анализа всего системного диска?

Да, вы можете, но будьте готовы подождать, так как это займет некоторое время. Используйте команду du -sh /, чтобы увидеть общий объем занимаемого места в корневой директории. Учтите, что эта команда сканирует всю файловую систему, поэтому выполнение может занять довольно долгое время.

Как можно исключить определенную директорию при использовании команды du?

Если вы хотите исключить директорию, вы можете использовать флаг –exclude. Например, команда du -sh –exclude=/path/to/exclude /path/to/directory рассчитает размер /path/to/directory, не включая указанный исключенный путь.

ncdu лучше, чем du?

«Лучше» — понятие субъективное. ncdu предлагает более удобный интерфейс и интерактивное использование, что упрощает навигацию и управление файлами для некоторых пользователей. В то время как du более прост в использовании и идеально подходит для быстрых команд, которые можно использовать в скриптах. Ваш выбор зависит от ваших потребностей и предпочтений в работе.

Может ли Baobab сканировать сетевые расположения?

Да, Baobab может сканировать сетевые расположения, но производительность и точность зависят от стабильности сети и характеристик удаленной файловой системы. Чтобы добавить сетевое расположение в Baobab, используйте пункт меню «Файл» > «Подключиться к серверу».

Что делает команда sort -rh?

Команда sort -rh сортирует вывод в удобочитаемом формате (-h, где 1K меньше 1M) и в обратном порядке (-r), что позволяет большим размерам оказаться в начале списка.

Как установить ncdu, если его нет в моей системе?

Если ncdu еще не установлен, вы можете установить его с помощью менеджера пакетов вашего дистрибутива. Для систем на основе Ubuntu или Debian используйте команду sudo apt-get install ncdu. Для систем на основе Red Hat используйте команду sudo yum install ncdu.

Можно ли найти самые большие файлы вместо директорий?

Конечно. В то время как описанные методы сосредоточены на директориях, вы можете найти большие файлы с помощью команды find. Например, команда find /путь/к/поиску -type f -exec du -h {} + | sort -rh | head -n 10 выведет список из 10 самых больших файлов в указанном пути.

Как можно отслеживать использование диска в течение времени?

Для отслеживания использования диска в течение времени вам может потребоваться использовать дополнительные инструменты или скрипты. Один из простых способов — запускать периодически команду du (например, через задачи cron) и сохранять вывод в файл для последующего анализа. Также существуют более сложные решения для мониторинга, которые могут отслеживать тенденции использования диска.

Заключение

Существует множество способов найти самые большие директории в вашей Linux-системе, каждый со своими особенностями. Лично я предпочитаю ncdu за его сочетание мощности и удобства, хотя иногда выполняю быструю команду du просто ради ностальгии.

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

Подпишись на канал автора в Telegram
This is default text for notification bar

Что будем искать? Например,Cisco