find - является инструментом предназначенным для поиска файлов и директорий в файловой системе на основе заданных критериев. Она обладает широким спектром возможностей и позволяет настраивать поиск с помощью различных опций и фильтров.
Разработчик:
Эрик Б. Декер
Джеймс Янгмен
Кэвин Дэлли
Лицензия:
Стандартная общественная лицензия GNU версии 3 (GPLv3)
Синтаксис:
find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]
Операторы в порядке убывания их приоритета:
Пример | Описание |
---|---|
( EXPR ) | Скобки используются для группировки выражений и изменения порядка выполнения операций |
! EXPR, -not EXPR | Логический оператор NOT, который инвертирует результат выражения. Если выражение EXPR истинно, то ! EXPR будет ложным, и наоборот |
EXPR1 -a EXPR2, EXPR1 -and EXPR2 | Логический оператор AND, который возвращает истину только в том случае, если оба выражения EXPR1 и EXPR2 истинны |
EXPR1 -o EXPR2, EXPR1 -or EXPR2 | Логический оператор OR, который возвращает истину, если хотя бы одно из выражений EXPR1 и EXPR2 истинно. |
EXPR1 , EXPR2 | Запятая используется для последовательного выполнения выражений. Выражение EXPR1 выполняется первым, а затем выполняется выражение EXPR2 |
Опции позиции:
Опция | Описание |
---|---|
-daystart | Опция, которая указывает find использовать начало текущего дня в качестве точки отсчета для проверки временных атрибутов файлов. Обычно find использует точку старта выполнения команды в качестве временной отметки. |
-follow | Опция, которая указывает find следовать за символическими ссылками и выполнять поиск в файле, на который ссылается символическая ссылка. По умолчанию find не переходит по символическим ссылкам. |
-nowarn | Опция, которая указывает find не выводить предупреждения (warnings). По умолчанию, find может выводить предупреждения при обнаружении проблем с доступом или другими проблемами. |
-regextype | Опция, которая позволяет указать тип регулярного выражения, используемого при поиске. Например, можно указать posix-extended, чтобы использовать POSIX-совместимые расширенные |
-Olevel:
Включает оптимизацию запросов. Программа find переупорядочивает условия, чтобы ускорить выполнение, сохраняя общий результат. То есть предикаты с побочными эффектами не переупорядочиваются относительно друг друга. Оптимизации, выполняемые на каждом уровне оптимизации, следующие:
Опция | Описание |
---|---|
0 | Эквивалентно уровню оптимизации 1. |
1 | Это уровень оптимизации по умолчанию и соответствует традиционному поведению. Выражения переупорядочиваются так, чтобы тесты, основанные только на именах файлов (например, -name и -regex), выполнялись первыми. |
2 | Любые тесты -type или -xtype выполняются после любых тестов, основанных только на именах файлов, но перед тестами, которые требуют информации из индексного дескриптора. На многих современных версиях Unix типы файлов возвращаются readdir(), поэтому эти предикаты выполняются быстрее, чем предикаты, которым сначала нужно выполнить stat для файла. Если вы используете предикат -fstype FOO и указываете тип файловой системы FOO, который неизвестен (то есть отсутствует в /etc/mtab) при запуске find, этот предикат эквивалентен -false. |
3 | На этом уровне оптимизации включен полноценный оптимизатор запросов на основе стоимости. Порядок тестов изменяется так, чтобы дешевые (т.е. быстрые) тесты выполнялись первыми, а более затратные - позже, при необходимости. В каждой группе стоимости предикаты оцениваются раньше или позже в зависимости от того, вероятно ли их успех. Для -o предикаты, которые вероятно будут выполнены, оцениваются раньше, а для -a предикаты, которые вероятно не будут выполнены, оцениваются раньше |
Глобальные опции:
Опция | Описание |
---|---|
-depth | Команда find будет обрабатывать содержимое каждого каталога перед самим каталогом. Это означает, что find будет спускаться внутрь каталогов на самый нижний уровень и затем обрабатывать файлы внутри них, прежде чем перейти к самому каталогу. Кроме того, опция -delete также подразумевает использование опции -depth. При использовании опции -delete файлы будут удаляться после обработки содержимого каталога в глубину. |
-files0-from file | позволяет читать начальные точки (файлы или каталоги) из файла вместо их указания в командной строке. Эта опция полезна в случаях, когда требуется передать большое количество начальных точек или когда имена файлов могут конфликтовать с опциями команды find. |
-maxdepth levels | Определяет максимальную глубину, на которую команда find будет спускаться внутрь каталогов, начиная от указанных начальных точек. Уровень должен быть неотрицательным целым числом. Если установлено значение -maxdepth 0, тесты и действия будут применены только к самим начальным точкам, а не к их содержимому. |
-mindepth levels | Определяет минимальную глубину, на которой команда find будет выполнять тесты и действия. Уровень должен быть неотрицательным целым числом. Если установлено значение -mindepth 1, все файлы, кроме самих начальных точек, будут обработаны. |
-mount | Запрещает спускаться внутрь каталогов, находящихся на других файловых системах. Это альтернативное имя для -xdev и используется для обеспечения совместимости с некоторыми другими версиями команды find. |
-noignore_readdir_race | Отключает эффект опции -ignore_readdir_race. |
-noleaf | Отключает оптимизацию, основанную на предположении о том, что каталоги содержат на 2 подкаталога меньше, чем указано в их счетчике жестких ссылок. Эта опция необходима при поиске на файловых системах, не следующих за обычной схемой ссылок каталогов в UNIX, таких как файловые системы CD-ROM или MS-DOS, или точки монтирования томов AFS. Каждый каталог на обычной UNIX-файловой системе имеет как минимум 2 жесткие ссылки: имя каталога и запись . внутри каталога. |
-xdev | Не наследует каталоги в других файловых системах. |
Подробнее об утилите find:
find --help
# и
man find
find . -name "*.txt"
find /path/to/directory -type d -empty
find . -type f -mtime -7
find ~ -name "*.sh" -type f -executable
find /path/to/directory -type f -size +1M
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены. Если режим загрузки другой, то рекомендуется воспользоваться "Сохранением изменений".