Гид по технологиям

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

• 5 min read • Linux • Обновлено 20 Nov 2025
Как использовать du и найти большие директории
Как использовать du и найти большие директории

Быстрые ссылки

  • Использование команды du

  • Поиск самых больших директорий на сервере

Терминал Bash с примером вывода команд

Хотя команда 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 -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)

  1. Оценить проблему: df -h
  2. Найти большие каталоги: sudo du -ahx / | sort -rh | head -n 25
  3. Проанализировать типы файлов: find -maxdepth 2 -type f -printf “%s %p “ | sort -rn | head
  4. Очистить кеши/логи или переместить данные на другой том.
  5. Мониторить: добавьте алерты на использование диска в системе мониторинга.

Примеры команд-заметок (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.

Примечание: примеры команд сохраняют исходный синтаксис; заменяйте / на конкретные точки монтирования при работе в продуктиве.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро