name — чувствителен к регистру
iname — нечувствителен к регистру
find /home -name "Test.txt"
find /home -iname "Test.txt"
Не выводить ошибки доступа при поиске - 2>/dev/null
find /home -name "*.jpg" 2>/dev/null
find /home -type f -iname openssl
Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.
c — Байт
k — Кбайт
M — Мбайт
G — Гбайт
Отобразить все файлы, размером более 2 Гб (+2G).
find . -size +2G
find . -empty
Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:
find . -cmin -60
Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.
find . -cmin +60
К команде find можно добавить действия, которые будут произведены с результатами поиска.
find . -empty -exec rm {} \;
find . -name "*.jpg" -exec cp {} /backup \;
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