Как использовать du и находить самые большие директории в Linux
Быстрые ссылки
Использование команды du
Поиск самых больших директорий на сервере

Хотя команда ls показывает размеры отдельных файлов, она обычно не отражает реальный размер папок (часто отображая 4096 байт для каталога). Чтобы рекурсивно пройти по поддиректориям и получить суммарный размер, используйте du.
Использование команды du
Лучше всего заменить простое ls на du с парой флагов:
du -had 1Коротко о флагах:
- -h — human readable, форматирует размеры в КБ, МБ, ГБ (в локальном тексте: КБ/МБ/ГБ). Определение: вывод в удобочитаемом формате с суффиксами единиц.
- -a — all, включает отдельные файлы, а не только директории; полезно, если вы хотите имитировать вывод ls.
- -d 1 — ограничение глубины до 1 уровня от текущей директории; без этого du выведет все вложенные папки, что неудобно при глубокой структуре.

Если вы хотите, чтобы du показывал «очевидный» размер (как Свойства в графическом файловом менеджере), можно использовать флаг –apparent-size. Он покажет суммарный объём файлов без учёта сжатия или аллокации на уровне блоков диска.
Чтобы отсортировать результат по убыванию и увидеть самые большие элементы в текущей папке, пропустите вывод через sort. Важно применять -h у sort, чтобы корректно сравнивать размеры с суффиксами:
du -had 1 | sort -rh
По умолчанию du работает с текущей директорией, но можно указать целевой путь последним аргументом:
du -had 1 ./world/Советы по использованию:
- Если вы хотите только суммарный размер директории без показа файлов, опустите -a: du -hd 1
- Для более точного анализа используйте –apparent-size при подозрении на сжатие/спарсинг или когда сравниваете с графическими менеджерами.
Поиск самых больших директорий на сервере
Одна из частых задач — быстро найти, что «съедает» диск на сервере. Команда df -h показывает использование каждого смонтированного тома:
df -h
Но df не покажет, какие конкретно каталоги внутри корня занимают место. Для детального поиска можно запустить du по корню, отсортировать и вывести топ-N результатов. Команда ниже просматривает весь файловый дерев, сортирует по размеру и ограничивает вывод до 25 строк:
du -ah / | sort -rh | head -n 25
Важно: при просмотре всего дерева часто будут сообщения об ошибках доступа. Запускайте команды с sudo, если вы являетесь администратором:
sudo du -ah / | sort -rh | head -n 25Заметки по производительности и правам:
- du может быть медленным на больших файловых системах — при необходимости используйте инструмент на стороне (fsck offline) или проанализируйте только подозрительные монтирования.
- Исключайте сетевые тома и точки монтирования (например, /proc, /sys, /dev) через –exclude или запуск на конкретном разделе:
sudo du -ahx / | sort -rh | head -n 25Флаг -x ограничивает обход текущей файловой системой (не перескакивать на другие монтирования).
Когда du не подходит или даёт вводящие в заблуждение результаты
- Для оценки свободного места тома лучше использовать df -h.
- Если файл использует жёсткие ссылки или sparse-файлы, apparent size и реальный аллоцированный размер будут отличаться; в таких случаях сравнивайте –apparent-size и обычный вывод.
- Для мониторинга в реальном времени берите инструменты уровня ОС: ncdu (интерактивный), glances, atop, iotop.
Альтернативные подходы и инструменты
- ncdu — интерактивный ncurses-интерфейс для быстрого обзора и удаления больших директорий (удобно при SSH): sudo ncdu /
- duf — современная утилита для отображения дисков и точек монтирования с приятным выводом.
- find + du — для выборочного поиска по маске: find /var -type f -name “*.log” -exec du -h {} + | sort -rh | head
Ментальные модели (как думать о проблеме)
- «Топливный бак» — df показывает ёмкость и заполнение (уровень топлива), а du говорит, какие «канистры» в багажнике занимают это место.
- Делите проблему по уровням: диск → раздел → крупные каталоги → типы файлов → отдельные файлы.
Чеклист для администратора перед освобождением места
- Запустить df -h и понять, какой раздел заполнен.
- Использовать sudo du -ahx /path | sort -rh | head -n 50 для поиска кандидатов.
- Проверить временные каталоги (/var/log, /tmp, /var/cache) и ротацию логов (logrotate).
- Убедиться, что файлы не связаны жёсткими ссылками; проверить lsof на открытые удалённые файлы.
- Создать бэкап перед удалением больших данных.
Краткое руководство действий (SOP)
- Оценить проблему: df -h
- Найти большие каталоги: sudo du -ahx / | sort -rh | head -n 25
- Проанализировать типы файлов: find
-maxdepth 2 -type f -printf “%s %p “ | sort -rn | head - Очистить кеши/логи или переместить данные на другой том.
- Мониторить: добавьте алерты на использование диска в системе мониторинга.
Примеры команд-заметок (cheat sheet)
- Показать суммарный размер текущей директории: du -sh .
- Топ папок первого уровня: du -hd 1 | sort -rh
- Топ 50 файлов/папок по размеру на корне: sudo du -ahx / | sort -rh | head -n 50
Важно: всегда проверяйте, что вы удаляете — особенно в /var, /usr, /etc и других системных каталогах. При сомнениях создавайте бэкап или перемещайте данные на временное хранилище.
Короткое резюме
Команда du — основной инструмент для подробного анализа использования диска в Linux. Правильная комбинация флагов (-h, -a, -d, -x, –apparent-size), сортировки и привилегий (sudo) поможет быстро найти и устранить причины заполнения диска. Для интерактивного исследования используйте ncdu, а для общего мониторинга — df -h и инструменты типа glances.
Примечание: примеры команд сохраняют исходный синтаксис; заменяйте / на конкретные точки монтирования при работе в продуктиве.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента