Поиск по имени — name, iname name — чувствителен к регистру find /home -name "Test.txt" iname- нечувствителен к регистру find /home -iname "Test.txt" Ошибка отказе разрешения — 2>/dev/null find /home -name "*.jpg" 2>/dev/null Поиск по типу файла — type f – простые файлы; d – каталоги; l – символические ссылки; b – блочные устройства (dev); c – символьные устройства (dev); p – именованные каналы; s – сокеты; Поиск по размеру файла — size «+» — Поиск файлов больше заданного размера «-» — Поиск файлов меньше заданного размера Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать. c — Байт k — Кбайт M — Мбайт G — Гбайт ================================================================= Отобразить все файлы, размером более 2 Гб (+2G). find . -size +2G ================================================================= Поиск пустых файлов и каталогов -empty find . -empty Поиск времени изменения -cmin, -mtime ◽️ mtime – время последнего изменения файла ◽️ ctime – время создания файла ◽️ atime – время последнего доступа к файлу Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60: find . -cmin -60 Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60. find . -cmin +60 Действия -exec, -delete К команде find можно добавить действия, которые будут произведены с результатами поиска. -delete — Удаляет соответствующие результатам поиска файлы -ls — Вывод более подробных результатов поиска с: Размерами файлов. Количеством inode. -print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам. -exec Выполняет указанную команду в каждой строке результатов поиска. -exec command {} \; command – это команда, которую вы желаете выполнить для результатов поиска. Например: rm mv cp {} – является результатами поиска. \; — Команда заканчивается точкой с запятой после обратного слеша. find . -empty -exec rm {} \; find . -name "*.jpg" -exec cp {} /backup \; Если вместо exec использовать ok, то будет просить подтверждение действия ================================================================= Примеры find / -type f -exec du -sh {} 2>/dev/null + | sort -rh | head -n 10 Скопировать файлы, созданные за последние 30 дней cp $(find . -mtime -30) /mnt/disk2/Scan2017/old Вывести только имена файлов. Поиск файлов пойдёт рекурсивно от той директории, где будет запущена команда: find | awk -F '/' '{print $NF;}' Переименовать все найденные файлы: find /backup/sql -type f -name "*.sql.gz" -exec mv {} {}.old \; Переместить найденные по маске файлы из одной директории в другую: find /mnt/backup/*site.ru* -type f -exec mv {} /web/sites/ \; Найти файлы в определённом временном интервале: find /mnt/zz_archive -type f -newermt '2022-01-01 00:01' ! -newermt '2022-01-31 23:59' Cортировка по дате изменения: find /data -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r и обратная сортировка: find /data -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort