FIND

Find

FIND — утилита поиска файлов по имени и другим свойствам, используемая в UNIX‐подобных операционных системах. Может производить поиск в одном или нескольких каталогах с использованием критериев, заданных пользователем. По умолчанию, find возвращает все файлы в рабочей директории. Более того, find позволяет применять пользователю определённые действия ко всем найденным файлам. Также поддерживаются регулярные выражения. Для поиска файлов по содержимому следует пользоваться утилитой grep.

find позволяет задать множество опций поиска таких как:

  • поиск по маске (в имени)
  • контроль глубины вложенности поиска
  • поиск определенных типов файлов(каталог, симлинки, сокеты)
  • поиск по времени создания/модификации файла
  • можно задать размер (от и до в диапазоне) файла
  • выполнение действий с каждым найденным файлом
  • Список ключей для поиска в Find

    • -name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.
    • -type — тип искомого: f=файл, d=каталог, l=ссылка (link), p=канал (pipe), s=сокет.
    • -user — владелец: имя пользователя или UID.
    • -group — владелец: группа пользователя или GID.
    • -perm — указываются права доступа.
    • -size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).
    • -atime — время последнего обращения к файлу (в днях).
    • -amin — время последнего обращения к файлу (в минутах).
    • -ctime — время последнего изменения владельца или прав доступа к файлу (в днях).
    • -cmin — время последнего изменения владельца или прав доступа к файлу (в минутах).
    • -mtime — время последнего изменения файла (в днях).
    • -mmin — время последнего изменения файла (в минутах).
    • -newer другой_файл — искать файлы созданные позже, чем другой_файл.
    • -delete — удалять найденные файлы.
    • -ls — генерирует вывод как команда -dgils.
    • -print — показывает на экране найденные файлы.
    • -exec command {} \; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.
    • -ok — перед выполнением команды указанной в -exec, выдаёт запрос.
    • -depth или -d — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.
    • -maxdepth — максимальный уровень вложенности для поиска. «-maxdepth 0» ограничивает поиск текущим каталогом.
    • -prune — используется, когда вы хотите исключить из поиска определённые каталоги.
    • -mount или -xdev — не переходить на другие файловые системы.
    • -regex — искать по имени файла используя регулярные выражения.
    • -regextype тип — указание типа используемых регулярных выражений.
    • -P — не разворачивать символические ссылки (поведение по умолчанию).
    • -L — разворачивать символические ссылки.

    Критерии поиска Find

    У команды find может быть несколько критериев поиска (их также называют tests). Каждый критерий представляет собой определенное условие проверки, которое возвращает либо true либо false. Это можно сравнить с условиями оператора if в программировании. В процессе обработки очередного файла команда find по очереди проверяет каждый критерий, и если очередной критерий возвращает false, тогда команда find переходит к следующему файлу. Критериев у команды find довольно много, мы рассмотрим только некоторые из них.