Поиск больших файлов в директории

Описание

Команда для поиска самых больших файлов и директорий в указанной директории. Полезно для диагностики проблем с нехваткой места на диске, поиска файлов, занимающих много места, и очистки дискового пространства.

Команда

du -ahx . | sort -rh | head -5

Поиск в другой директории

Символ . указывает путь и означает текущую директорию. Для поиска в другой директории укажите вместо точки ее путь:

du -ahx /var/log | sort -rh | head -5
du -ahx /opt | sort -rh | head -5

Параметры команды

du -ahx

Опции:

  • -a — искать и файлы, и директории
  • -h — выводить информацию в удобочитаемом формате (KB, MB, GB)
  • -x — не выполнять поиск на других файловых системах (оставаться в пределах одной файловой системы)

sort -rh

Опции:

  • -r — сортировка в обратном порядке (от большего к меньшему)
  • -h — сортировка с учетом человекочитаемых размеров (KB, MB, GB)

head -5

Выводит только первые 5 результатов. Можно изменить число для вывода большего или меньшего количества результатов.

Примеры использования

Топ-5 самых больших файлов и директорий в текущей директории

du -ahx . | sort -rh | head -5

Пример вывода:

$$2.1G ./logs/application.log 1.5G ./data/database.db 800M ./cache/temp_files 450M ./backups/backup_2025.tar.gz 320M ./uploads/user_files$$

Топ-10 самых больших файлов в /var

du -ahx /var | sort -rh | head -10

Топ-3 самых больших файлов в домашней директории пользователя

du -ahx ~ | sort -rh | head -3

Поиск больших файлов в директории с выводом только файлов (без директорий)

find . -type f -exec du -h {} + | sort -rh | head -5

Дополнительные полезные команды

Поиск файлов больше определенного размера

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

Найдет все файлы больше 100 МБ и отсортирует их по размеру.

Поиск только директорий (без файлов)

du -hx . | sort -rh | head -5

Без опции -a команда du выводит только директории.

Подсчет общего размера директории

du -sh /opt/wiki-iridium

Выведет общий размер указанной директории в удобочитаемом формате.

Поиск с исключением определенных директорий

du -ahx . --exclude='node_modules' --exclude='.git' | sort -rh | head -5

Исключает из поиска указанные директории (например, node_modules и .git).

Важные замечания

Примечание: Опция -x ограничивает поиск одной файловой системой. Это полезно, чтобы избежать поиска в смонтированных файловых системах (например, /proc, /sys, /dev), что может замедлить выполнение команды. {.is-info}

Важно: Команда du может выполняться долго на больших директориях. Для ускорения можно использовать опцию -d для ограничения глубины поиска: {.is-warning}

du -ahx -d 2 . | sort -rh | head -5

Это ограничит поиск двумя уровнями вложенности.

Практические сценарии использования

Очистка диска

  1. Найдите самые большие файлы:

    du -ahx /var | sort -rh | head -10
    
  2. Проанализируйте результаты и удалите ненужные файлы.

Диагностика проблем с местом на диске

# Проверьте корневую файловую систему
du -ahx / | sort -rh | head -10

# Проверьте домашние директории
du -ahx /home | sort -rh | head -10

Мониторинг роста логов

# Проверьте размер логов
du -ahx /var/log | sort -rh | head -5