Со временем на вашем диске может появиться множество ненужных файлов, занимающих много места на диске. Обычно в системах 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
для сортировки на основе 5-го столбца, который является размером файла.
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
по конвейеру в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 .
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.