Введение
Со временем на диске может закончиться свободное место из-за большого количества ненужных файлов, занимающих много места на диске. Обычно в системах Linux не хватает места на диске из-за больших файлов журналов или резервных копий.
В этом руководстве объясняется, как найти самые большие файлы и каталоги в системах Linux с помощью команд find и du.
Найдите большие файлы с помощью команды find
Команда find — один из самых мощных инструментов для системных администраторов Linux. Это позволяет вам искать файлы и каталоги на основе различных критериев, включая размер файла. Например, если вы хотите найти файлы размером более 100 МБ, вы должны использовать следующую команду в текущем рабочем каталоге:
sudo find. -xdev -type f -size +100M
Заменить . с путем к каталогу, в котором вы хотите искать файлы большего размера
Вывод покажет список файлов без дополнительной информации.
/var/lib/libvirt/images/archlinux.img
/var/lib/libvirt/images/slackware.img
Команду find также можно использовать в сочетании с другими инструментами, такими как ls или sort, для выполнения операций с такими файлами.
В следующем примере мы используем команду ls вместе с командой find, чтобы напечатать список всех файлов с их соответствующими размерами, и мы сортируем список на основе пятого столбца, который представляет собой размер файла, используя команду сортировки.
find. -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r
Вывод будет выглядеть следующим образом:
-rw------- 1 root root 40967M Sep 6 11:42 /var/lib/libvirt/images/archlinux.img
-rw------- 1 root root 3725M Sep 6 13:19 /var/lib/libvirt/images//slackware.img
Разберем команду:
- найти. -xdev -type f -size + 100M -print Искать только файлы ( -type f ) в текущем рабочем каталоге ( . ), размером более 100 МБ ( -size + 100M ), не спускаться по каталогам в других файловых системах ( -xdev ) и печатать полное имя файла в стандартном выводе, за которым следует новая строка ( -print ).
- xargs ls -lh Вывод команды find отправляется al xargs, который выполняет команду ls -lh, и вывод будет напечатан в удобочитаемом формате.
- sort -k5,5 -h -r Сортировать строки по пятому столбцу ( -k5,5 ), сравнивать значения в удобочитаемом формате ( -h ) и инвертировать результат ( -r ).
- head Печатать только первые 10 строк передаваемого вывода.
Команда find имеет множество мощных опций. Например, вы можете искать большие файлы старше x дней, большие файлы с определенным расширением или большие файлы, принадлежащие определенному пользователю.
Найдите большие файлы и каталоги с помощью команды du
Команда du используется для оценки использования файлового пространства и особенно полезна для поиска каталогов и файлов, занимающих много места на диске.
Следующая команда напечатает самые большие файлы и каталоги:
du -ahx. | sort -rh | head -5
Первый столбец включает размер файла, а второй — имя файла:
55G.
24G./.random.d/linux
24G./.random.d
13G./Articoli
5.2G./.news
Объяснение команды:
- дю -ахх. Оцените использование дискового пространства в текущем рабочем каталоге ( . ), подсчитайте файлы и каталоги ( a ), размер печати в удобочитаемом формате ( h ) и пропустите каталоги в разных файловых системах ( x ).
- sort -rh сортирует строки, сравнивая значения в читаемом формате ( -h ) и инвертируя результат ( -r ).
- head -5 печатает только первые 5 строк передаваемого вывода.
Команда du включает в себя другие параметры, которые можно использовать для уточнения результата.
Вывод
Поиск больших файлов очень полезен, когда диск заполнен и вы хотите его освободить.