Ответ
Основная команда для этого — 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 {} ;