du (Disk Usage) — утилита для анализа использования дискового пространства файлами и директориями.
Позволяет увидеть, сколько места занимают каталоги, файлы и поддиректории.

📝 Топ‑20 полезных флагов du#

  • -h — читаемый формат размеров (KB, MB, GB).
  • -a — показать размер каждого файла.
  • -s — показать только общий итог.
  • -c — добавить строку с общим размером.
  • -d <N> — глубина рекурсии в поддиректории.
  • --max-depth=<N> — аналогично -d.
  • -S — не учитывать поддиректории в расчёте.
  • -b — размеры в байтах.
  • -k — размеры в килобайтах.
  • -m — размеры в мегабайтах.
  • -B <SIZE> — указать кастомный размер блока.
  • --apparent-size — показывать “логический” размер файла.
  • --time — показать время последнего изменения.
  • --time-style=long-iso — формат временных меток ISO.
  • --exclude=<PATTERN> — исключить файлы/папки по шаблону.
  • --inodes — показать использование inode.
  • --si — использовать степени 1000 вместо 1024.
  • --total — вывести общий итог использования.
  • --all — показать все файлы и каталоги.
  • --help — полный список опций.

🚀 Айсберг команд du — от базового к гуру#

🟢 Уровень 1 — База (разогрев)#

du

  • Показать использование текущей директории

du -h

  • Читаемый формат (MB, GB)

du -sh

  • Общий размер текущей директории

du -sh /var/log

  • Посмотреть размер директории /var/log

du -ah

  • Показать размер всех файлов и директорий

🟡 Уровень 2 — Ограничение глубины рекурсии#

du -h --max-depth=1

  • Размер текущей директории и её подкаталогов (1 уровень)

du -h --max-depth=2

  • Два уровня вложенности

du -d 1 -h /home

  • То же самое для /home

du -sh /etc/*

  • Размер всех папок внутри /etc

du -h --max-depth=1 /var | sort -h

  • Сортировка папок по размеру

🟠 Уровень 3 — Фильтрация и сортировка#

du -ah | sort -h

  • Отсортировать все файлы и папки по размеру

du -ah /var | grep log

  • Найти все файлы с “log” в пути

du -sh * | sort -hr

  • Сортировка папок/файлов по убыванию

du -h --exclude="*.log"

  • Исключить .log-файлы

du -ah --time

  • Показать размер + дату последнего изменения

🔵 Уровень 4 — Анализ inode и блоков#

du --inodes -h

  • Показать использование inode

du -b

  • Размеры в байтах

du -k

  • Размеры в килобайтах

du -m

  • Размеры в мегабайтах

du -B 1M

  • Установить единицу измерения в МБ

🟣 Уровень 5 — Сводки и отчёты#

du -ch

  • Общий итог + читаемый формат

du -sh --apparent-size *

  • Использовать логический размер вместо физического

du --total -sh /var/log /home

  • Суммарный размер указанных директорий

du -h --time --max-depth=1

  • Добавить временные метки

du -ch --exclude="*.tmp"

  • Пропустить временные файлы

🔴 Уровень 6 — Гуру‑режим#

du -ah / | sort -rh | head -n 20

  • Топ-20 самых больших файлов и папок

du -xh / | sort -rh | head -n 30

  • Игнорировать другие файловые системы (-x)

du --apparent-size -ah / | sort -rh | head

  • Смотреть логический размер, а не реальный

find /var -type f -size +100M -exec du -h {} + | sort -rh

  • Найти файлы >100МБ и отсортировать

du -ch --exclude="/proc/*" --exclude="/sys/*"

  • Исключить виртуальные ФС

🟤 Уровень 7 — Интеграция с другими инструментами#

du -sh * | sort -hr | head

  • Топ-10 самых тяжёлых директорий

du -ah | grep "\.log" | sort -rh | head

  • Найти самые большие .log-файлы

du -sh $(ls /var/log/)

  • Посмотреть размеры всех файлов в /var/log

du -sh /var/* | sort -hr

  • Топ самых тяжёлых папок в /var

watch -n 2 "du -sh /var/log/* | sort -rh | head -n 10"

  • Мониторинг логов в реальном времени

🧩 Бонус — практические сценарии#

Быстро посмотреть размер текущей директории:

du -sh

Топ-20 самых больших файлов в системе:

du -ah / | sort -rh | head -n 20

Вывести размеры всех подпапок, отсортированных по убыванию:

du -sh * | sort -rh

Проверить использование inode:

du --inodes -h /

Исключить ненужные директории из анализа:

du -ch --exclude="/proc/*" --exclude="/sys/*"