
Со временем ваш жёсткий диск может засориться множеством ненужных файлов, занимающих много места. Обычно в системах Linux место на диске заканчивается из-за больших файлов журналов или резервных копий.
В этом руководстве объясняется, как найти самые большие файлы и каталоги в системах Linux с помощью команд find и du .
Найти большие файлы с помощью команды find
Команда find — один из самых мощных инструментов в арсенале системных администраторов Linux. Она позволяет искать файлы и каталоги по различным критериям, включая размер файла.
Например, для поиска файлов размером более 100 МБ в текущем рабочем каталоге выполните следующую команду:
sudo find . -xdev -type f -size +100M
Замените . на путь к каталогу, в котором вы хотите искать самые большие файлы.
На выходе будет представлен список файлов без какой-либо дополнительной информации.
/var/lib/libvirt/images/centos-7-desktop_default.img /var/lib/libvirt/images/bionic64_default.img /var/lib/libvirt/images/win10.qcow2 /var/lib/libvirt/images/debian-9_default.img /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img /var/lib/libvirt/images/centos-7_default.img
Команду find также можно использовать в сочетании с другими инструментами, такими как ls или sort для выполнения операций с этими файлами.
В примере ниже мы передаем вывод команды find в ls , которая выведет размер каждого найденного файла, а затем направит этот вывод в команду sort для сортировки по пятому столбцу, который представляет собой размер файла.
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r
Вывод будет выглядеть примерно так:
-rw------- 1 root root 40967M Jan 5 14:12 /var/lib/libvirt/images/win10.qcow2 -rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img -rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img -rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img -rw------- 1 root root 562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img -rw------- 1 root root 378M Jan 7 22:26 /var/lib/libvirt/images/bionic64_default.img
Если вывод содержит много строк информации, вы можете использовать команду 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
Первый столбец содержит размер файла, а второй — имя файла:
55G . 24G ./.vagrant.d/boxes 24G ./.vagrant.d 13G ./Projects 5.2G ./.minikube
Пояснение к команде:
-
du -ahx .: оценка использования дискового пространства в текущем рабочем каталоге (.), подсчет количества файлов и каталогов (a), вывод размеров в удобочитаемом формате (h) и пропуск каталогов в разных файловых системах (x). -
sort -rh: сортировка строк путем сравнения значений в удобочитаемом формате (-h) и обратный результат (-r). -
head -5: выводит только первые пять строк переданного вывода.
Команда du имеет множество других опций, которые можно использовать для уточнения вывода данных об использовании дискового пространства.
Заключение
Мы показали вам, как находить самые большие файлы и каталоги с помощью команд find и du .
Теперь, когда вы узнали, как найти самые большие файлы в вашей системе, возможно, вы захотите прочитать наше руководство о том , как удалить файлы и каталоги с помощью командной строки Linux .
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Связанные руководства