Как узнать, сколько места занимает директория в Linux?

«Как узнать, сколько места занимает директория в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основная команда для этого — du (disk usage). Вот как я её применяю:

1. Общий размер директории (самый частый запрос):

du -sh /path/to/directory
  • -s (--summarize): Вывести только итоговую сумму.
  • -h (--human-readable): Показать размер в КБ, МБ, ГБ.

2. Найти самые большие поддиректории:

# Перейти в корень исследуемой папки
cd /var/
# Показать размер всех подпапок на первом уровне и отсортировать
sudo du -h --max-depth=1 | sort -hr

Это мой основной метод поиска "пожирателей" дискового пространства.

3. Учет символических ссылок: По умолчанию du не переходит по симлинкам. Чтобы посчитать место по их целевому пути, используйте флаг -L (--dereference):

du -Lsh /path/with/symlinks

4. Исключение определенных шаблонов из подсчета:

du -sh --exclude="*.log" /path/to/directory

Важное замечание: du показывает дисковое использование (сколько блоков на диске занято файлами), а не логическую сумму размеров файлов. Для разреженных файлов (sparse files) это различие может быть существенным. Чтобы увидеть логический размер, можно использовать ls -l или stat для отдельного файла, но для директорий du — стандартный инструмент.

Для регулярного аудита больших файлов я также иногда использую find:

# Найти файлы больше 100МБ в /var и показать их размер
find /var -type f -size +100M -exec ls -lh {} ;