Ответ
Команда du (disk usage) показывает размер файлов и директорий на диске. Ключевое отличие от ls -l в том, что du показывает фактический объем, занимаемый файлом в файловой системе (с учетом размера блока), и может рекурсивно суммировать размеры всех файлов внутри директорий.
Основные опции и примеры использования:
# 1. Показать общий размер текущей директории и всех вложенных (по умолчанию)
du
# 2. Показать только итоговый суммарный размер указанной директории
# -s (summarize), -h (human-readable)
du -sh /var/log/
# Вывод: 1.2G /var/log/
# 3. Показать размер всех элементов в текущей директории с глубиной 1
# --max-depth=1 ограничивает рекурсию
sudo du -h --max-depth=1 /home/
# Вывод примерный:
# 4.0K /home/lost+found
# 15G /home/user1
# 8.2G /home/user2
# 23G /home/
# 4. Показать размер файлов, отсортированный по убыванию (часто используется с head)
# -a показывает и файлы тоже
sudo du -ah /var/log/ | sort -rh | head -20
# 5. Исключить определенные шаблоны файлов из подсчета
# --exclude="*.log" игнорирует файлы .log
du -sh --exclude="*.cache" ~/
Важные нюансы:
duсчитает дисковое пространство, занятое файлами. Для анализа использования диска с точки зрения файловой системы (занятые inode, свободное место) используется командаdf.- Для интерактивного анализа больших директорий удобнее использовать утилиту
ncdu. - Размер, показанный
du, может быть больше логического размера файлов из-за размера блока файловой системы (например, маленький файл в 1 байт может занимать 4КБ на диске).