Найти большие файлы в Linux

Find Large Files in Linux

22 Июня 2020 | Терминал

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

Найти большие файлы в Linux

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


Найти большие файлы с помощью 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 который выполняет 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 : печатает только первые 5 строк конвейерного вывода.

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


Вывод 

Поиск больших файлов очень полезен, когда ваш диск заполнен, и вы хотите освободить его.

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


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...