Со временем ваш диск может быть загроможден большим количеством ненужных файлов, занимающих много места на диске. Обычно в системах Linux не хватает места на диске из-за больших файлов журналов или резервных копий.

В этом руководстве объясняется, как найти самые большие файлы и каталоги в системах Linux с помощью команд findи .du

Найти большие файлы с помощью findкоманды

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

Например, чтобы найти файлы размером более 100 МБ в текущем рабочем каталоге , выполните следующую команду:

sudo find . -xdev -type f -size +100M

На выходе будет показан список файлов без какой-либо дополнительной информации.

Команду findтакже можно использовать в сочетании с другими инструментами, такими как ls или sortдля выполнения операций с этими файлами.

В приведенном ниже примере мы передаем вывод findкоманды, lsкоторая будет печатать размер каждого найденного файла, а затем передаем этот вывод sortкоманде для сортировки на основе 5-го столбца, который является размером файла.

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r

Если вывод содержит много строк информации, вы можете использовать headкоманду для печати только первых 10 строк:

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head

Разберем команду:

  • find . -xdev -type f -size +100M -print- искать только файлы ( -type f) в текущем рабочем каталоге ( .), размер которых превышает 100 МБ ( -size +100M), не переходить по каталогам в других файловых системах ( -xdev) и выводить полное имя файла на стандартный вывод, за которым следует новая строка ( -print) .
  • xargs ls -lh- вывод findкоманды передается по каналу, на xargs который выполняется ls -lhкоманда, которая будет печатать вывод в формате длинного списка, удобном для чтения человеком.
  • sort -k5,5 -h -r- отсортировать строки по 5-му столбцу ( -k5,5), сравнить значения в удобочитаемом формате ( -h) и инвертировать результат ( -r).
  • head: печатает только первые 10 строк передаваемого вывода.

Команда find поставляется с множеством мощных опций. Например, вы можете искать большие файлы старше x дней, большие файлы с определенным расширением или большие файлы, принадлежащие определенному пользователю.

Поиск больших файлов и каталогов с помощью duкоманды

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

Следующая команда напечатает самые большие файлы и каталоги:

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

Первый столбец включает размер файла, а второй — имя файла.

Объяснение команды:

  • du -ahx .: оценка использования дискового пространства в текущем рабочем каталоге ( .), подсчет файлов и каталогов ( a), печать размеров в удобочитаемом формате ( h) и пропуск каталогов в разных файловых системах ( x).
  • sort -rh: сортировать строки путем сравнения значений в удобочитаемом формате ( -h) и инвертировать результат ( -r).
  • head -5 : печатает только первые пять строк передаваемого вывода.

Команда du имеет много других параметров, которые можно использовать для уточнения вывода об использовании дискового пространства.