АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

find - Интернет в облаке

Запустите поиск в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда find, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


find - поиск файлов в иерархии каталогов

СИНТАКСИС


найдите [-H] [-L] [-P] [-D отладки] [-Olevel] [начальная точка ...] [выражение]

ОПИСАНИЕ


Эта страница руководства документирует версию GNU найдите. ГНУ найдите ищет в дереве каталогов
укорененный в каждой данной отправной точке путем оценки данного выражения слева направо,
в соответствии с правилами старшинства (см. раздел ОПЕРАТОРЫ), пока результат не станет известен
(левая часть ложна для и операции, верно для or), после чего найдите движется
к следующему имени файла. Если начальная точка не указана, то `. ' предполагается.

Если вы используете найдите в среде, где важна безопасность (например, если вы
используют его для поиска в каталогах, которые доступны для записи другим пользователям), вы должны прочитать
Глава «Соображения безопасности» документации findutils, которая называется Обнаружение
Файлы и поставляется с findutils. Этот документ также включает гораздо больше деталей и
обсуждение, чем эта страница руководства, так что вы можете найти его более полезным источником информации.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Ассоциация -H, -L и -P опции управляют обработкой символических ссылок. Аргументы командной строки
после них принимаются имена файлов или каталогов, которые нужно исследовать, вплоть до
первый аргумент, который начинается с `- ', или аргумент` (' или `! '. Этот аргумент и любой
следующие аргументы считаются выражением, описывающим то, что нужно искать.
Если пути не указаны, используется текущий каталог. Если выражение не указано,
выражение -Распечатать используется (но вам, вероятно, следует подумать об использовании -print0 вместо,
так или иначе).

На этой странице руководства рассказывается о «опциях» в списке выражений. Эти параметры управляют
поведение найдите но указываются сразу после последнего имени пути. Пятерка
"реальные" варианты -H, -L, -P, -D и -O должен стоять перед первым именем пути, если он вообще есть. А
двойное тире -- также может использоваться, чтобы указать, что любые оставшиеся аргументы не являются опциями
(хотя обеспечение того, чтобы все начальные точки начинались с `./ 'или` /', как правило, безопаснее, если
вы используете подстановочные знаки в списке начальных точек).

-P Никогда не переходите по символическим ссылкам. Это поведение по умолчанию. Когда найдите исследует или
печатает информацию в файле, файл представляет собой символическую ссылку, используемая информация
берется из свойств самой символической ссылки.

-L Переходить по символическим ссылкам. Когда найдите проверяет или распечатывает информацию о файлах,
Используемая информация берется из свойств файла, на который указана ссылка
точек, а не из самой ссылки (если это не битая символическая ссылка или найдите is
невозможно проверить файл, на который указывает ссылка). Использование этой опции подразумевает
-без листьев. Если вы позже воспользуетесь -P вариант, -без листьев все еще будет в силе. Если -L
действует и найдите обнаруживает символическую ссылку на подкаталог во время его
search будет выполнен поиск в подкаталоге, на который указывает символическая ссылка.

Когда -L опция действует, Типа предикат всегда будет соответствовать
тип файла, на который указывает символическая ссылка, а не сама ссылка (если только
символическая ссылка не работает). Действия, которые могут привести к тому, что символические ссылки станут
сломан в то время как найдите выполняется (например, -удалять) может сбивать с толку
поведение. С использованием -L вызывает -lимя и -имя предикаты всегда возвращаться
ложный.

-H Не переходить по символическим ссылкам, кроме как при обработке аргументов командной строки.
После появления найдите проверяет или распечатывает информацию о файлах, используемая информация должна быть
взято из свойств самой символической ссылки. Единственное исключение из этого
поведение - это когда файл, указанный в командной строке, является символической ссылкой, а
ссылка может быть решена. В этой ситуации используемая информация взята из
независимо от того, на что указывает ссылка (то есть переход по ссылке). Информация о
сама ссылка используется как резерв, если файл, на который указывает символическая ссылка
не может быть исследован. Если -H действует и один из путей, указанных в
командная строка представляет собой символическую ссылку на каталог, содержимое этого каталога будет
быть исследованным (хотя, конечно, -maxdepth 0 предотвратит это).

Если более одного из -H, -L и -P указано, каждый переопределяет другие; последний
появление в командной строке вступает в силу. Поскольку это значение по умолчанию, -P вариант должен
считаться действующим, если только -H or -L указан.

GNU найдите часто статистические файлы во время обработки самой командной строки, перед
поиски начались. Эти параметры также влияют на то, как обрабатываются эти аргументы.
В частности, существует ряд тестов, сравнивающих файлы, перечисленные в командной строке.
против файла, который мы сейчас рассматриваем. В каждом случае файл, указанный на
Командная строка будет проверена, и некоторые ее свойства будут сохранены. Если
названный файл на самом деле является символической ссылкой, а -P вариант действует (или если ни один из них
-H ни -L были указаны), информация, используемая для сравнения, будет взята из
свойства символьной ссылки. В противном случае он будет взят из свойств
файл, на который указывает ссылка. Если найдите не может перейти по ссылке (например, потому что на ней
недостаточные привилегии или ссылка указывает на несуществующий файл) свойства
будет использована сама ссылка.

Когда -H or -L кредита Он in эффект, любой символический связи в списке как аргумент
-новее будет разыменован, и метка времени будет взята из файла, в который
точки символьных ссылок. То же самое относится и к -новееXY, -анее и -знающий.

Ассоциация -следовать опция имеет эффект, аналогичный -L, хотя он вступает в силу в точке, где
появляется (то есть, если -L не используется, но -следовать есть, любые символические ссылки, появляющиеся после
-следовать в командной строке будут разыменованы, а предыдущие - нет).

-D параметры отладки
Распечатать диагностическую информацию; это может быть полезно для диагностики проблем с тем, почему
найдите не делает то, что вы хотите. Список параметров отладки должен быть запятой.
разделены. Совместимость параметров отладки между выпусками не гарантируется.
Findutils. Полный список допустимых параметров отладки см. В выходных данных найдите
-D помощь. Допустимые варианты отладки включают

help Объясните параметры отладки

tree Показать дерево выражений в его исходной и оптимизированной форме.

stat Печатать сообщения по мере того, как файлы проверяются с помощью состояние и lstat системные вызовы.
Ассоциация найдите программа пытается минимизировать такие вызовы.

opt Выводит диагностическую информацию, относящуюся к оптимизации выражения.
дерево; см. параметр -O.

Rate Печатает сводку, показывающую, как часто каждый предикат был успешным или неудачным.

-Уровень O
Включает оптимизацию запросов. В найдите программа переупорядочивает тесты, чтобы ускорить выполнение
при сохранении общего эффекта; то есть предикаты с побочными эффектами не
переупорядочены относительно друг друга. Оптимизация, выполняемая при каждой оптимизации
уровень следующие.

0 Эквивалентно уровню оптимизации 1.

1 Это уровень оптимизации по умолчанию и соответствует традиционному
поведение. Выражения переупорядочены так, чтобы тесты основывались только на именах
файлов (например -имя и -регулярное выражение) выполняются первыми.

2 Любые Типа or -xтип тесты выполняются после любых тестов, основанных только на
имена файлов, но перед любыми тестами, которые требуют информации от
индексный дескриптор. Во многих современных версиях Unix типы файлов возвращаются
readdir () и поэтому эти предикаты вычисляются быстрее, чем предикаты.
которым нужно сначала статовать файл. Если вы используете -fsтип FOO сказуемое и
указать тип файловой системы FOO который неизвестен (то есть присутствует в
`/ etc / mtab') в то время найдите начинается, этот предикат эквивалентен
-ложный.

3 На этом уровне оптимизации включен полноценный оптимизатор запросов на основе затрат.
Порядок тестов изменен таким образом, чтобы выполнялись дешевые (т.е. быстрые) тесты.
первые и более дорогие - при необходимости выполняются позже. В
каждый диапазон затрат, предикаты оцениваются раньше или позже в соответствии с
будут ли они успешными или нет. Для -o, предикаты, которые
вероятность успеха оценивается раньше, а для -a, предикаты, которые
вероятность неудачи оценивается раньше.

Оптимизатор, основанный на затратах, имеет фиксированное представление о том, насколько вероятно любой данный тест
преуспевать. В некоторых случаях вероятность учитывает специфику
тест (например, Типа f считается более вероятным, чем Типа c).
Оптимизатор на основе затрат в настоящее время оценивается. Если на самом деле это не так
улучшить производительность найдите, он будет снова удален. Наоборот,
оптимизация, которая окажется надежной, надежной и эффективной, может быть реализована на
снижение уровня оптимизации с течением времени. Однако поведение по умолчанию (т.е.
уровень оптимизации 1) не будет изменен в серии версий 4.3.x. В
набор тестов findutils запускает все тесты на найдите на каждом уровне оптимизации и
гарантирует, что результат будет таким же.

ЭКСПРЕССИЯ


Часть командной строки после списка начальных точек - это выражение. Это
своего рода спецификация запроса, описывающая, как мы сопоставляем файлы и что мы делаем с файлами
которые были сопоставлены. Выражение состоит из последовательности вещей:

Тесты Тесты возвращают истинное или ложное значение, обычно на основе некоторого свойства файла.
мы рассматриваем. В -empty Например, тест верен только тогда, когда текущий файл
пусто.

Действия
Действия имеют побочные эффекты (например, печать чего-либо на стандартном выводе) и
вернуть либо истину, либо ложь, обычно в зависимости от того, успешны они или нет.
Ассоциация -Распечатать действие, например, печатает имя текущего файла на стандартном
вывод.

Глобальные варианты
Глобальные параметры влияют на работу тестов и действий, указанных в любой части
командная строка. Глобальные параметры всегда возвращают истину. В -глубина вариант для
пример делает найдите перемещаться по файловой системе в первую очередь в глубину.

Позиционные варианты
Позиционные опции влияют только на тесты или действия, которые следуют за ними. Позиционный
параметры всегда возвращают истину. В -типрегулярного выражения вариант например позиционный,
указание диалекта регулярных выражений для регулярных выражений, встречающихся позже
в командной строке.

Операторы
Операторы объединяют другие элементы в выражении. Они включают в себя
пример -o (имеется в виду логическое ИЛИ) и -a (имеется в виду логическое И). Где оператор
отсутствует, -a предполагается.

Если все выражение не содержит действий, кроме -чернослив or -Распечатать, -Распечатать is
выполняется для всех файлов, для которых верно все выражение.

Ассоциация -удалять действие также действует как вариант (поскольку подразумевает -глубина).

ПОЗИЦИОННЫЙ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Позиционные параметры всегда возвращают значение true. Они влияют только на тесты, проводимые позже
командная строка.

-начало дня
Время измерения (для -амин, -время, -cмин, -ctime, -мминкачества -MTime) С
начало сегодняшнего дня, а не 24 часа назад. Эта опция влияет только на тесты
которые появляются позже в командной строке.

-следовать
Устарело; использовать -L вариант вместо этого. Разыменование символических ссылок. Подразумевает
-без листьев, -следовать опция влияет только на те тесты, которые появляются после нее на
командная строка. Если только -H or -L была указана опция, положение
-следовать опция изменяет поведение -новее предикат; любые файлы, перечисленные как
аргумент -новее будут разыменованы, если это символические ссылки. Одинаковый
рассмотрение относится к -новееXY, -анее и -знающий, Аналогичным образом, Типа
предикат всегда будет соответствовать типу файла, на который символическая ссылка
указывает, а не на саму ссылку. С использованием -следовать вызывает -lимя и -имя
предикаты всегда возвращать ложь.

-типрегулярного выражения напишите
Изменяет синтаксис регулярного выражения, понимаемый -регулярное выражение и -iregex тесты, которые
происходит позже в командной строке. Чтобы узнать, какие типы регулярных выражений известны,
использование -типрегулярного выражения помощь. Документация Texinfo (см. СМ ТАКЖЕ) объясняет значение
о различиях между различными типами регулярных выражений.

-Warn, -nowarn
Включите или отключите предупреждающие сообщения. Эти предупреждения относятся только к командной строке.
использования, а не каких-либо условий, которые найдите может столкнуться при поиске
каталоги. Поведение по умолчанию соответствует -предупреждать если стандартный ввод
tty, и к -новаться иначе. Если предупреждающее сообщение, связанное с использованием командной строки
производится, статус выхода найдите не влияет. Если POSIXLY_CORRECT
переменная окружения установлена, и -предупреждать is Также используемый, it is не указанный который, if
любой, предупреждение будете be активный.

GLOBAL ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Глобальные параметры всегда возвращают истину. Глобальные параметры действуют даже для тестов, которые происходят
ранее в командной строке. Во избежание путаницы следует указать глобальные параметры на
командная строка после списка начальных точек, непосредственно перед первым тестом, позиционная опция
или действие. Если вы укажете глобальную опцию в другом месте, найдите выдаст предупреждение
сообщение, объясняющее, что это может сбивать с толку.

Глобальные параметры располагаются после списка начальных точек, поэтому они не совпадают.
вариант как -L, Например.

-d Синоним -depth для совместимости с FreeBSD, NetBSD, MacOS X и OpenBSD.

-depth Обрабатывать содержимое каждого каталога перед самим каталогом. Действие -delete
также подразумевает -глубина.

-Помогите помогите
Распечатайте сводку использования командной строки найдите и выйти.

-ignore_readdir_race
Как правило, найдите выдаст сообщение об ошибке, если не удастся определить файл. если ты
укажите эту опцию, и файл будет удален между временем найдите читает имя
файл из каталога и время, когда он пытается просмотреть файл, сообщение об ошибке отсутствует
будет издано. Это также относится к файлам или каталогам, имена которых указаны
в командной строке. Эта опция вступает в силу, когда командная строка
read, что означает, что вы не можете искать одну часть файловой системы с этим
опция включена и частично с этой опцией выключена (если вам нужно это сделать, вы
нужно выпустить два найдите вместо этого, одна с опцией и одна без нее).

-Максимальная глубина уровни
Спуститься самое большее уровни (неотрицательное целое число) уровней каталогов ниже
отправные точки. -Максимальная глубина 0
означает применять тесты и действия только к самим отправным точкам.

-минглубина уровни
Не применяйте никаких тестов или действий на уровнях ниже, чем уровни (неотрицательный
целое число). -минглубина 1 означает обрабатывать все файлы, кроме начальных.

-mount Не переходить по каталогам в других файловых системах. Альтернативное название для -xdev, Для
совместимость с некоторыми другими версиями найдите.

-noignore_readdir_race
Отключает эффект -ignore_readdir_race.

-без листьев
Не оптимизируйте, предполагая, что каталоги содержат на 2 подкаталога меньше, чем
количество их жестких ссылок. Эта опция необходима при поиске файловых систем, которые
не следуйте соглашению о ссылках на каталоги Unix, например, файловые системы CD-ROM или MS-DOS
или точки подключения тома AFS. Каждый каталог в нормальной файловой системе Unix имеет
минимум 2 жестких ссылки: его имя и его `. ' Вход. Кроме того, его подкаталоги
(если есть) у каждого есть запись "..", связанная с этим каталогом. Когда найдите изучает
каталог, после того, как он установил на 2 подкаталога меньше, чем ссылка на каталог
count, он знает, что остальные записи в каталоге не каталоги
("листовые" файлы в дереве каталогов). Если только имена файлов должны быть
осмотрены, нет необходимости их статировать; это дает значительное увеличение
скорость поиска.

-версия, --версия
Распечатать найдите номер версии и выйти.

-xdev Не переходить по каталогам в других файловых системах.

ИСПЫТАНИЯ
Некоторые тесты, например -новееXY и -такой же файл, разрешить сравнение между файлом
в настоящее время исследуется и некоторый справочный файл, указанный в командной строке. Когда
эти тесты используются, интерпретация справочного файла определяется
кредита -H, -L и -P и любые предыдущие -следовать, но справочный файл проверяется только
один раз во время анализа командной строки. Если справочный файл не может быть исследован
(например, состояние(2) системный вызов не выполняется), выдается сообщение об ошибке и найдите
выходит с ненулевым статусом.

Числовые аргументы могут быть указаны как

+n для более чем n,

-n менее чем за n,

n именно для n.

-амин n
Последний доступ к файлу n минут назад.

-анее файл
Последний раз доступ к файлу был осуществлен позднее, чем файл был изменен. Если файл это символическое
ссылка и -H или -L опция действует, время доступа к файлу
он указывает на всегда используется.

-время n
Последний доступ к файлу n* 24 часа назад. Когда выясняется, сколько 24-часовых
периодов назад к файлу последний раз обращались, любая дробная часть игнорируется, поэтому для соответствия
-время +1, файл должен быть доступен как минимум два дней назад.

-cмин n
Последнее изменение статуса файла n минут назад.

-знающий файл
Последний раз статус файла изменялся не ранее, чем файл был изменен. Если файл - это
символическая ссылка и -H или -L опция действует, изменение статуса
всегда используется время файла, на который он указывает.

-ctime n
Последнее изменение статуса файла n* 24 часа назад. См. Комментарии к -время в
понять, как округление влияет на интерпретацию времени изменения статуса файла.

-empty Файл пуст и является либо обычным файлом, либо каталогом.

-исполняемый
Соответствует исполняемым файлам и каталогам, доступным для поиска (в файле
смысл разрешения имен). При этом учитываются списки контроля доступа и другие
артефакты разрешений, которые -Пермь тест игнорирует. В этом тесте используется
доступ(2) системный вызов, поэтому серверы NFS могут обмануть их, выполняя сопоставление UID (или
корневое сжатие), поскольку многие системы реализуют доступ(2) в клиентском ядре и
поэтому не может использовать информацию об отображении UID, хранящуюся на сервере. Потому что это
тест основан только на результате доступ(2) системный вызов, нет
гарантировать, что файл, для которого этот тест прошел успешно, действительно может быть выполнен.

-false Всегда ложно.

-fsтип напишите
Файл находится в файловой системе типа напишите. Допустимые типы файловых систем различаются между
разные версии Unix; неполный список типов файловых систем, которые
принимается в той или иной версии Unix: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K,
S52K. Вы можете использовать -printf с директивой% F, чтобы увидеть типы ваших
файловые системы.

-гид n Числовой идентификатор группы файла: n.

-группа имя
Файл принадлежит группе имя (допускается числовой идентификатор группы).

-имя описания
Подобно -lимя, но при совпадении регистр не учитывается. Если -L или -следовать
действует, этот тест возвращает false, если символическая ссылка не разорвана.

-инаме описания
Подобно -имя, но при совпадении регистр не учитывается. Например, шаблоны `fo * 'и
`F ?? ' сопоставить имена файлов `Foo ',` FOO', `foo ',` fOo' и т. д. Шаблон `* foo *`
также будет соответствовать файлу с именем '.foobar'.

-инум n
Файл имеет номер inode n. Обычно проще использовать -такой же файл вместо этого проверьте.

-ипат описания
Подобно -дорожка. но совпадение нечувствительно к регистру.

-iregex описания
Подобно -регулярное выражение, но при совпадении регистр не учитывается.

-iполное имя описания
См. -Ipath. Эта альтернатива менее портативна, чем -ипат.

-ссылки n
Файл имеет n ссылки.

-lимя описания
Файл - это символическая ссылка, содержимое которой соответствует шаблону оболочки. описания,
метасимволы не обрабатывают символы "/" или "." специально. Если -L или -следовать
действует, этот тест возвращает false, если символическая ссылка не разорвана.

-ммин n
Данные файла были в последний раз изменены n минут назад.

-MTime n
Данные файла были в последний раз изменены n* 24 часа назад. См. Комментарии к -время в
понять, как округление влияет на интерпретацию времени модификации файла.

-имя описания
База имени файла (путь с удаленными ведущими каталогами) соответствует оболочке
описания описания. Поскольку ведущие каталоги удалены, имена файлов
рассматривается для матча с -имя никогда не будет содержать косую черту, поэтому `-name a / b 'будет
никогда ничего не совпадать (вам, вероятно, нужно использовать -дорожка вместо). Выдается предупреждение
если вы попытаетесь это сделать, если не установлена ​​переменная среды POSIXLY_CORRECT. В
метасимволы (`* ',`?' и `[] ') соответствуют`.' в начале базового имени (это
это изменение в findutils-4.2.2; см. раздел СООТВЕТСТВИЕ СТАНДАРТАМ ниже). К
игнорируйте каталог и файлы в нем, используйте -чернослив; см. пример в
описание -дорожка. Брекеты не признаются особенными, несмотря на то, что
что некоторые оболочки, включая Bash, наделяют фигурные скобки особым значением в оболочке
узоры. Сопоставление имени файла выполняется с использованием фнматч(3)
библиотечная функция. Не забудьте заключить узор в кавычки, чтобы
защитить его от расширения оболочкой.

-новее файл
Файл был изменен позднее, чем файл. Если файл символическая ссылка и -H
или -L действует, время изменения файла, на который он указывает
to всегда используется.

-новееXY ссылка
Успешно, если отметка времени X рассматриваемого файла новее, чем отметка времени Y of
файла ссылка, Письма X и Y может быть любой из следующих букв:

a Время доступа к файлу ссылка
B Время рождения файла ссылка
c Время изменения статуса inode ссылка

m Время модификации файла ссылка
t ссылка интерпретируется непосредственно как время

Некоторые комбинации недопустимы; например, это недействительно для X быть t. Некоторые
комбинации реализованы не во всех системах; Например B не поддерживается на
все системы. Если недопустимая или неподдерживаемая комбинация XY указано, фатальный
результаты ошибки. Спецификации времени интерпретируются как аргумент для -d
вариант GNU даты. Если вы попытаетесь использовать время рождения справочного файла, а
время рождения не может быть определено, выдается сообщение о фатальной ошибке. Если вы укажете
тест, который относится к времени рождения проверяемых файлов, этот тест не пройден
для любых файлов, время рождения которых неизвестно.

-ногруппа
Ни одна группа не соответствует числовому идентификатору группы файла.

-нузер
Ни один пользователь не соответствует числовому идентификатору пользователя файла.

-дорожка описания
Имя файла соответствует шаблону оболочки описания. Метасимволы не обрабатывают "/" или
`. ' специально; так, например,
найти . -path "./sr*sc"
напечатает запись для каталога с именем `./src/misc '(если он существует). Игнорировать
все дерево каталогов, используйте -чернослив вместо того, чтобы проверять каждый файл в дереве.
Например, чтобы пропустить каталог `src / emacs 'и все файлы и каталоги в
его и распечатайте имена других найденных файлов, сделайте что-то вроде этого:
найти . -path ./src/emacs -prune -o -print
Обратите внимание, что проверка соответствия шаблону применяется ко всему имени файла, начиная с одного
начальных точек, названных в командной строке. Было бы разумно использовать только
здесь имя абсолютного пути, если соответствующая начальная точка также является абсолютным путем. Этот
означает, что эта команда никогда ничего не найдет:
найти bar -path / foo / bar / myfile -print
Найти сравнивает -дорожка аргумент с объединением имени каталога и
базовое имя исследуемого файла. Поскольку конкатенация никогда не закончится
косая черта, -дорожка аргументы, оканчивающиеся косой чертой, не будут соответствовать ничему (кроме, возможно,
начальная точка, указанная в командной строке). Предикат -дорожка также поддерживается
от HP-UX найдите и будет в следующей версии стандарта POSIX.

-Пермь Режим
Биты прав доступа к файлу точно Режим (восьмеричный или символьный). Поскольку точное совпадение
требуется, если вы хотите использовать эту форму для символьных режимов, вам, возможно, придется
указать довольно сложную строку режима. Например, `-perm g = w 'будет соответствовать только
файлы, которые имеют режим 0020 (то есть те, для которых разрешение записи группы является
только набор разрешений). Более вероятно, что вы захотите использовать `/ 'или` -'
формы, например `-perm -g = w ', который соответствует любому файлу с групповой записью
разрешение. Увидеть ПРИМЕРЫ раздел для некоторых иллюстративных примеров.

-перма -Режим
Все биты разрешений Режим установлены для файла. Символьные режимы принимаются
в этой форме, и обычно вы хотите их использовать именно так. Ты
должен указывать `u ',` g' или `o ', если вы используете символьный режим. Увидеть ПРИМЕРЫ .
для наглядных примеров.

-перма /Режим
Любой из битов разрешения Режим установлены для файла. Символьные режимы принимаются
в таком виде. Вы должны указать `u ',` g' или `o ', если вы используете символьный режим. Видеть
домен ПРИМЕРЫ раздел для некоторых иллюстративных примеров. Если нет битов разрешения в Режим
заданы, этот тест соответствует любому файлу (идея должна соответствовать
поведение -Пермь -000).

-перма +Режим
Это больше не поддерживается (и устарело с 2005 года). Использовать -Пермь /Режим
.

-удобочитаемый
Соответствует читаемым файлам. При этом учитываются списки контроля доступа и
другие артефакты разрешений, которые -Пермь тест игнорирует. Этот тест использует
домен доступ(2) системный вызов, поэтому серверы NFS могут обмануть их, выполняя сопоставление UID.
(или подавление корней), поскольку многие системы реализуют доступ(2) в клиентском ядре
и поэтому не может использовать информацию отображения UID, хранящуюся на сервере.

-регулярное выражение описания
Имя файла соответствует регулярному выражению описания. Это совпадение на всем пути,
не поиск. Например, чтобы сопоставить файл с именем `./fubar3 ', вы можете использовать
регулярное выражение `. * bar. ' или `. * b. * 3 ', но не` f. * r3'. Регулярные выражения
понимается найдите по умолчанию являются регулярными выражениями Emacs, но это может быть
изменилось с -типрегулярного выражения опцию.

-такой же файл имя
Файл ссылается на тот же индексный дескриптор, что и имя. Когда -L действует, это может включать
символические ссылки.

-размер n[cwbkMG]
Файл использует n единиц пространства, округляя в большую сторону. Могут использоваться следующие суффиксы:

`b 'для блоков размером 512 байт (это значение по умолчанию, если не используется суффикс)

c для байтов

`w 'для двухбайтовых слов

`k 'для килобайт (единицы по 1024 байта)

`M 'для мегабайт (единицы по 1048576 байт)

`G 'для гигабайт (единицы по 1073741824 байта)

Размер не учитывает косвенные блоки, но учитывает блоки в разреженных файлах.
которые фактически не выделены. Имейте в виду, что формат `% k 'и`% b'
спецификаторы -printf по-разному обрабатывать разреженные файлы. Суффикс `b 'всегда
обозначает блоки размером 512 байт и никогда не блоки размером 1 килобайт, что отличается от
поведение -ls.

Префиксы + и - обозначают больше и меньше, как обычно. Имей в виду
что размер округляется до следующей единицы. Следовательно -размер -1M не эквивалентно
в -размер -1048576c. Первый соответствует только пустым файлам, последний соответствует файлам
от 1 до 1,048,575 XNUMX XNUMX байт.

-ИСТИНА Всегда правда.

Типа c
Тип файла c:

b блок (с буферизацией) специальный

c символ (небуферизованный) специальный

d каталог

p именованный канал (FIFO)

f обычный файл

l символическая ссылка; это никогда не правда, если -L или -следовать опция
в действительности, если символическая ссылка не разорвана. Если вы хотите найти
символические ссылки, когда -L действует, используйте -xтип.

розетка

Дверь D (Солярис)

-жидкость n Числовой идентификатор пользователя файла: n.

-используемый n
Последний доступ к файлу n дней после последнего изменения статуса.

-user uname
Файл принадлежит пользователю uname (разрешен числовой идентификатор пользователя).

-полное имя описания
Смотрите -path. Эта альтернатива менее портативна, чем -дорожка.

-записываемый
Соответствует файлам, которые доступны для записи. При этом учитываются списки контроля доступа и
другие артефакты разрешений, которые -Пермь тест игнорирует. Этот тест использует
домен доступ(2) системный вызов, поэтому серверы NFS могут обмануть их, выполняя сопоставление UID.
(или подавление корней), поскольку многие системы реализуют доступ(2) в клиентском ядре
и поэтому не может использовать информацию отображения UID, хранящуюся на сервере.

-xтип c
Такой же как Типа если файл не является символической ссылкой. Для символьных ссылок: если
-H or -P была указана опция, истина, если файл является ссылкой на файл типа c; если
домен -L была предоставлена ​​опция, истина, если c это `l '. Другими словами, для символического
ссылки, -xтип проверяет тип файла, который Типа не проверяет.

-контекст описания
(Только SELinux) Контекст безопасности файла соответствует glob описания.

Действия
-удалять
Удалить файлы; истина, если удаление прошло успешно. Если удаление не удалось, появится сообщение об ошибке
выпущен. Если -удалять выходит из строя, найдитестатус выхода будет отличным от нуля (когда он
в итоге выходит). Использование -удалять автоматически включает `-глубинавариант.

Предупреждения: Не забывайте, что командная строка find вычисляется как выражение, поэтому
положить -удалять сначала сделаю найдите попробуйте удалить все, что ниже начального
баллы, которые вы указали. При тестировании найдите командная строка, которую вы позже собираетесь
использовать с -удалять, вы должны явно указать -глубина чтобы избежать позже
сюрпризы. Потому что -удалять подразумевает -глубина, вы не можете с пользой использовать -чернослив и
-удалять одновременно.

-Exec команду ;
Выполнить команду; истина, если возвращается 0 статус. Все следующие аргументы найдите Он
принимаются как аргументы команды до тех пор, пока не будет аргумент, состоящий из `; ' является
столкнулся. Строка `{} 'заменяется именем текущего обрабатываемого файла.
везде, где это встречается в аргументах команды, а не только в аргументах, где
он один, как в некоторых версиях найдите. Обе эти конструкции могут нуждаться в
быть экранированными (с помощью `\ ') или заключаться в кавычки, чтобы защитить их от расширения оболочкой.
Смотрите пост в ПРИМЕРЫ раздел для примеров использования -Exec вариант.
указанная команда запускается один раз для каждого совпадающего файла. Команда выполняется в
начальный каталог. Есть неизбежные проблемы безопасности, связанные с использованием
-Exec действие; вы должны использовать -execdir вариант вместо.

-Exec команду {} +
Этот вариант -Exec действие запускает указанную команду для выбранных файлов,
но командная строка строится путем добавления каждого выбранного имени файла в конце; в
общее количество вызовов команды будет намного меньше, чем количество
совпадающие файлы. Командная строка построена примерно так же, как xargs строит
его командные строки. В команде разрешен только один экземпляр "{}". В
команда выполняется в стартовом каталоге. Если найдите обнаруживает ошибку, это
иногда может вызвать немедленный выход, поэтому некоторые ожидающие команды могут не выполняться на
все. Этот вариант -Exec всегда возвращает истину.

-execdir команду ;

-execdir команду {} +
Подобно -Exec, но указанная команда запускается из подкаталога, содержащего
согласованный файл, который обычно не является каталогом, в котором вы начали найдите. Это
гораздо более безопасный метод вызова команд, так как он позволяет избежать состояния гонки
при разрешении путей к совпадающим файлам. Как и в случае с -Exec действие,
`+ 'форма -execdir построит командную строку для обработки более чем одного совпадающего
файл, но любой вызов команду будет перечислять только файлы, которые существуют в
тот же подкаталог. Если вы используете эту опцию, вы должны убедиться, что ваш $ PATH
переменная окружения не ссылается на `. '; в противном случае злоумышленник может запустить любой
команды, которые им нравятся, оставив файл с соответствующим именем в каталоге, в котором
ты побежишь -execdir. То же самое относится к записям в $ PATH которые пусты
или которые не являются абсолютными именами каталогов. Если найдите обнаруживает ошибку, это может
иногда вызывают немедленный выход, поэтому некоторые ожидающие команды могут вообще не выполняться.
Результат действия зависит от того, + или ; вариант уже используется;
-execdir команду {} + всегда возвращает истину, а -execdir команду {} ; возвращает истину
только если команду возвращает 0.

-fls файл
Правда; нравиться -ls но напишите на файл такое как -fprint. Выходной файл создается всегда,
даже если предикат никогда не сопоставляется. Увидеть НЕОБЫЧНОЕ ФИЛЕНАМЫ раздел для
информация о том, как обрабатываются необычные символы в именах файлов.

-fprint файл
Правда; распечатать полное имя файла в файл файл. Если файл не существует, когда найдите is
запустить, он создан; если он существует, он усекается. Имена файлов
`/ dev / stdout 'и`/ dev / stderr'обрабатываются специально; они относятся к стандарту
вывод и стандартный вывод ошибок соответственно. Выходной файл создается всегда,
даже если предикат никогда не сопоставляется. Увидеть НЕОБЫЧНОЕ ФИЛЕНАМЫ раздел для
информация о том, как обрабатываются необычные символы в именах файлов.

-fprint0 файл
Правда; нравиться -print0 но напишите на файл такое как -fprint. Выходной файл всегда
создается, даже если предикат никогда не сопоставляется. Увидеть НЕОБЫЧНОЕ ФИЛЕНАМЫ .
для получения информации о том, как обрабатываются необычные символы в именах файлов.

-fprintf файл формат
Правда; нравиться -printf но напишите на файл такое как -fprint. Выходной файл всегда
создается, даже если предикат никогда не сопоставляется. Увидеть НЕОБЫЧНОЕ ФИЛЕНАМЫ .
для получения информации о том, как обрабатываются необычные символы в именах файлов.

-ls True; перечислить текущий файл в ls -дилс формат на стандартный вывод. Количество блоков
состоят из 1К блоков, если не установлена ​​переменная окружения POSIXLY_CORRECT, в которой
case используются блоки размером 512 байт. Увидеть НЕОБЫЧНОЕ ФИЛЕНАМЫ раздел для информации
о том, как обрабатываются необычные символы в именах файлов.

-Хорошо команду ;
Подобно -Exec но сначала спросите пользователя. Если пользователь согласен, запустите команду. Иначе
просто верните false. Если команда запущена, ее стандартный ввод перенаправляется из
/ DEV / нуль.

Ответ на приглашение сравнивается с парой регулярных выражений для
определите, положительный это ответ или отрицательный. Это регулярное выражение
полученный из системы, если установлена ​​переменная среды `POSIXLY_CORRECT ', или
в противном случае от найдитепереводы сообщений. Если в системе нет подходящего
определение, найдитебудет использоваться собственное определение. В любом случае
интерпретация самого регулярного выражения будет зависеть от среды
переменные LC_CTYPE (классы символов) и LC_COLLATE (диапазоны символов и
классы эквивалентности).

-окдир команду ;
Подобно -execdir но сначала спросите пользователя так же, как и для -Хорошо. Если пользователь
не согласен, просто верните false. Если команда запущена, ее стандартный ввод будет
перенаправлен из / DEV / нуль.

-принт True; напечатайте полное имя файла в стандартном выводе с последующей новой строкой. Если
вы выводите по трубопроводу найдите в другую программу, и появляется слабейший
возможность того, что файлы, которые вы ищете, могут содержать новую строку,
тогда вам следует серьезно подумать об использовании -print0 вместо -Распечатать. Посмотреть
домен НЕОБЫЧНОЕ ФИЛЕНАМЫ раздел для информации о том, как необычные персонажи в
имена файлов обрабатываются.

-print0
Правда; вывести полное имя файла на стандартный вывод, за которым следует нулевой символ
(вместо символа новой строки, который -Распечатать использует). Это позволяет имена файлов, которые
содержат символы новой строки или другие типы пробелов, которые должны быть правильно интерпретированы
программы, которые обрабатывают найдите выход. Этот вариант соответствует -0 возможность
xargs.

-printf формат
Правда; Распечатать формат на стандартный вывод, интерпретируя экранирование `\ 'и`%'
директивы. Ширину поля и точность можно указать как с `printf 'C
функция. Обратите внимание, что многие поля печатаются как% s, а не как% d,
и это может означать, что флаги работают не так, как вы могли ожидать. Это также означает, что
флаг `- 'работает (заставляет поля выравниваться по левому краю). В отличие от -Распечатать,
-printf не добавляет новую строку в конец строки. Побеги и
директивы:

\ Сигнальный звонок.

\ b Backspace.

\ c Немедленно прекратите печать из этого формата и очистите вывод.

\ f Подача формы.

\ n Новая строка.

\ r Возврат каретки.

\ t Горизонтальная вкладка.

\ v Вертикальная табуляция.

\ 0 ASCII NUL.

\\ Литеральная обратная косая черта (`\ ').

\ NNN Символ, код ASCII которого - NNN (восьмеричный).

Символ `\ ', за которым следует любой другой символ, рассматривается как обычный
символ, поэтому они оба печатаются.

%% Буквальный знак процента.

% a Время последнего доступа к файлу в формате, возвращаемом функцией C `ctime '.

%Ak Время последнего доступа к файлу в формате, указанном k, который является либо `@ ', либо
директива для функции C `strftime '. Возможные значения для k Он
перечислено ниже; некоторые из них могут быть доступны не во всех системах из-за
различия в strftime между системами.

@ секунд с 1 января 1970 г., 00:00 по Гринвичу, с дробной частью.

Поля времени:

H час (00..23)

I час (01..12)

k час (0..23)

л час (1..12)

M минут (00..59)

AM или PM локали p

время r, 12 часов (чч: мм: сс [AP] M)

S Секунда (00.00 .. 61.00). Есть дробная часть.

Время T, 24 часа (чч:мм:сс.)

+ Дата и время, разделенные знаком «+», например «2004-04-28 + 22: 22: 05.0».
Это расширение GNU. Время указывается в текущем часовом поясе.
(на это может повлиять установка переменной окружения TZ). В
Поле секунд включает дробную часть.

Представление времени локали X (H: M: S). Поле секунд включает в себя
дробная часть.

Часовой пояс Z (например, EDT) или ничего, если часовой пояс не определяется

Поля даты:

сокращенное название дня недели для региона (вс .. вс)

Полное название дня недели для локали, переменной длины (воскресенье… суббота).

b сокращенное название месяца локали (январь .. декабрь)

Полное название месяца локали B, переменная длина (январь.. декабрь)

Дата и время локали c (суббота, 04 ноября, 12:02:33 EST 1989). Формат
то же, что и для cвремя(3) и, таким образом, чтобы сохранить совместимость с этим
формата, в поле секунд нет дробной части.

d день месяца (01..31)

Дата D (мм / дд / гг)

h то же, что и b

j день года (001..366)

м месяц (01..12)

U номер недели года с воскресеньем в качестве первого дня недели (00..53)

w день недели (0..6)

W номер недели года с понедельником в качестве первого дня недели (00..53)

представление даты локали x (мм / дд / гг)

y две последние цифры года (00..99)

Y год (1970 ...)

% b Объем дискового пространства, используемого для этого файла в блоках по 512 байт. Поскольку диск
пространство выделяется кратно размеру блока файловой системы, это обычно
больше% s / 512, но может быть меньше, если файл разреженный
.

% c Время последнего изменения статуса файла в формате, возвращаемом C `ctime '
функции.

%Ck Время последнего изменения статуса файла в формате, указанном k, какой
то же, что и для% A.

% d Глубина файла в дереве каталогов; 0 означает, что файл является отправной точкой.

% D Номер устройства, на котором существует файл (поле st_dev структуры struct
stat) в десятичном формате.

% f Имя файла без удаления всех ведущих каталогов (только последний элемент).

% F Тип файловой системы, в которой находится файл; это значение можно использовать для -fstype.

% g Имя группы файла или числовой идентификатор группы, если у группы нет имени.

% G Числовой идентификатор группы файла.

% h Начальные каталоги имени файла (все, кроме последнего элемента). Если файл
имя не содержит слэшей (так как оно находится в текущем каталоге)% h
спецификатор заменяется на ".".

% H Начальная точка, под которой был найден файл.

% i Номер inode файла (в десятичном формате).

% k Объем дискового пространства, используемого для этого файла в блоках по 1 КБ. Поскольку дисковое пространство
распределяется кратно размеру блока файловой системы, это обычно
больше% s / 1024, но может быть меньше, если файл разреженный
.

% l Объект символьной ссылки (пустая строка, если файл не является символьной ссылкой).

% m Биты прав доступа к файлу (в восьмеричном формате). В этом варианте используется "традиционный"
числа, которые используются в большинстве реализаций Unix, но если ваш конкретный
реализация использует необычный порядок восьмеричных битов разрешений, вы будете
увидеть разницу между фактическим значением режима файла и выводом
% m. Обычно вы хотите, чтобы у этого числа был ноль в начале, и
для этого вы должны использовать # флаг (например, `% # m ').

% M Права доступа к файлу (в символической форме, как для ls). Эта директива
поддерживается в Findutils 4.2.5 и новее.

% n Количество жестких ссылок на файл.

% p Имя файла.

% P Имя файла с именем начальной точки, под которой он был найден
удален.

% s Размер файла в байтах.

% S Редкость файла. Рассчитывается как (BLOCKSIZE * st_blocks / st_size).
Точное значение, которое вы получите для обычного файла определенной длины, составляет
системно-зависимый. Однако обычно разреженные файлы будут иметь значения меньше, чем
1.0, а файлы, использующие косвенные блоки, могут иметь значение больше
чем 1.0. Значение, используемое для BLOCKSIZE, зависит от системы, но обычно
512 байт. Если размер файла равен нулю, выводимое значение не определено. На
системы, в которых отсутствует поддержка st_blocks, предполагается, что разреженность файла
быть 1.0.

% t Время последней модификации файла в формате, возвращаемом C `ctime '
функции.

%Tk Время последнего изменения файла в формате, указанном k, какой
то же, что и для% A.

% u Имя пользователя файла или числовой идентификатор пользователя, если у пользователя нет имени.

% U Числовой идентификатор пользователя файла.

% y Тип файла (как в ls -l), U = неизвестный тип (не должно быть)

% Y Тип файла (например,% y), а также следующие символические ссылки: L = цикл, N = несуществующий

% Z (только SELinux) контекст безопасности файла.

% {% [% (
Зарезервировано для использования в будущем.

Символ `% ', за которым следует любой другой символ, отбрасывается, но другой
печатается символ (не полагайтесь на это, так как другие символы формата могут быть
введен). `% 'В конце аргумента формата вызывает неопределенное поведение
поскольку нет следующего символа. В некоторых регионах он может скрыть вашу дверь
ключи, в то время как в других он может удалить последнюю страницу из романа, который вы читаете.

Директивы% m и% d поддерживают # , 0 и + flags, но другие директивы делают
нет, даже если они печатают числа. Числовые директивы, которые не поддерживают эти
флаги включают G, U, b, D, k и n. Флаг формата `- 'поддерживается и изменяется
выравнивание поля от выравнивания по правому краю (по умолчанию) до выравнивания по левому краю
оправдано.

Смотрите пост в НЕОБЫЧНОЕ ФИЛЕНАМЫ раздел для информации о том, как необычные персонажи в
имена файлов обрабатываются.

-prune True; если файл является каталогом, не спускайтесь в него. Если -глубина дано,
ложный; нет эффекта. Потому что -удалять подразумевает -глубина, вы не можете с пользой использовать -чернослив
и -удалять одновременно.

-выйти Немедленно выйти. Дочерние процессы не останутся запущенными, но больше не будет путей
указанные в командной строке будут обработаны. Например, найдите / tmp / foo
/ tmp / bar -Распечатать -покидать будет печатать только / tmp / foo. Любые командные строки, которые были
построен с -execdir ... {} + будет вызываться перед найдите выходы. Выход
status может быть или не быть нулевым, в зависимости от того, произошла ли уже ошибка.

ОПЕРАТОРЫ
Перечислены в порядке убывания приоритета:

( выраж )
Приоритет силы. Поскольку круглые скобки являются специальными для оболочки, вы обычно
нужно их процитировать. Многие примеры на этой странице руководства используют обратную косую черту для
с этой целью: `\ (... \) 'вместо` (...)'.

! выраж Верно, если выраж ложно. Этот персонаж также обычно нуждается в защите от
интерпретация оболочкой.

-нет выраж
Такой же как ! выраж, но не совместим с POSIX.

выражение1 выражение2
Считается, что два выражения подряд соединяются подразумеваемым «и»; выражение2 Не
оценивается, если выражение1 ложно

выражение1 -a выражение2
Такой же как выражение1 выражение2.

выражение1 -а также выражение2
Такой же как выражение1 выражение2, но не совместим с POSIX.

выражение1 -o выражение2
Или же; выражение2 не оценивается, если выражение1 правда.

выражение1 Или выражение2
Такой же как выражение1 -o выражение2, но не совместим с POSIX.

выражение1 , выражение2
Список; оба выражение1 и выражение2 всегда оцениваются. Значение выражение1 сбрасывается;
значение списка - это значение выражение2. Оператор запятой может быть полезен для
поиск нескольких разных типов вещей, но обход файловой системы
иерархия только один раз. В -fprintf действие можно использовать для перечисления различных совпадающих
элементы в несколько разных файлов вывода.

Обратите внимание, что -a при неявном указании (например, если два теста появляются без
явный оператор между ними) или явно имеет более высокий приоритет, чем -o. Это
Значит это найдите . -имя файл -o -имя b-файл -Распечатать никогда не напечатаю файл.

НЕОБЫЧНОЕ ФИЛЕНАМЫ


Многие действия найдите приведет к печати данных, находящихся под контролем
другие пользователи. Сюда входят имена файлов, размеры, время модификации и т. Д. Файл
имена представляют собой потенциальную проблему, поскольку они могут содержать любой символ, кроме `\ 0 'и` /'.
Необычные символы в именах файлов могут делать неожиданные и часто нежелательные вещи с вашим
терминал (например, изменение настроек ваших функциональных клавиш на некоторых терминалах).
Необычные персонажи обрабатываются по-разному с помощью различных действий, как описано ниже.

-print0, -fprint0
Всегда печатайте точное имя файла без изменений, даже если вывод будет
Терминал.

-лс, -флс
Необычные персонажи всегда экранируются. Пробел, обратная косая черта и двойные кавычки
символы печатаются с использованием экранирования в стиле C (например, `\ f ',` \ "'). Другое
необычные символы печатаются с использованием восьмеричного escape-символа. Другие печатные символы
(для -ls и -fls это символы между восьмеричным числом 041 и 0176) печатаются
как есть.

-printf, -fprintf
Если вывод не поступает на терминал, он печатается как есть. В противном случае
результат зависит от того, какая директива используется. Директивы% D,% F,% g,% G,% H,
% Y и% y расширяются до значений, которые не контролируются владельцами файлов, и поэтому
печатаются как есть. Директивы% a,% b,% c,% d,% i,% k,% m,% M,% n,% s,% t,% u
и% U имеют значения, которые находятся под контролем владельцев файлов, но не могут быть
используется для отправки произвольных данных на терминал, поэтому они печатаются как есть. В
цитируются директивы% f,% h,% l,% p и% P. Цитирование выполняется в том же
как для GNU ls. Это не тот же механизм цитирования, который используется для -ls
и -fls. Если вы можете решить, какой формат использовать для вывода найдите тогда
обычно лучше использовать `\ 0 'в качестве терминатора, чем использовать новую строку в качестве файла
имена могут содержать пробелы и символы новой строки. Настройка
Переменная окружения LC_CTYPE используется для определения того, какие символы должны быть
цитируется.

-принт, -фпринт
Цитирование осуществляется так же, как и для -printf и -fprintf, Если вы используете
найдите в сценарии или в ситуации, когда совпадающие файлы могут иметь произвольные
имена, вам следует подумать об использовании -print0 вместо -Распечатать.

Ассоциация -Хорошо и -окдир действия выводят текущее имя файла как есть. Это может измениться в будущем
отпустить.

СТАНДАРТЫ СООТВЕТСТВИЕ


Для максимального соответствия стандарту POSIX вы должны установить POSIXLY_CORRECT
переменная окружения. Следующие параметры указаны в стандарте POSIX (IEEE Std
1003.1, издание 2003 г.):

-H Эта опция поддерживается.

-L Эта опция поддерживается.

-имя Эта опция поддерживается, но соответствие POSIX зависит от соответствия POSIX
система фнматч(3) библиотечная функция. Начиная с findutils-4.2.2, оболочка
метасимволы (например, `* ',`?' или `[] ') будут соответствовать ведущему`.', потому что
Интерпретация IEEE PASC 126 требует этого. Это изменение по сравнению с предыдущим
версии findutils.

Типа Поддерживается. POSIX определяет b, c, d, l, p, f и s. GNU также находит
поддерживает `D ', представляющий Дверь, где ОС их предоставляет.

-Хорошо Поддерживается. Интерпретация ответа по принципу «да» и «нет».
шаблоны, выбранные установкой переменной окружения `LC_MESSAGES '. Когда
Установлена ​​переменная окружения POSIXLY_CORRECT, эти шаблоны взяты из системы
определение положительного (да) или отрицательного (нет) ответа. См. Систему
документация для nl_langinfo(3), в частности YESEXPR и NOEXPR. Когда
POSIXLY_CORRECT не установлен, вместо этого шаблоны взяты из найдитесобственный
каталог сообщений.

-новее Поддерживается. Если указанный файл является символической ссылкой, он всегда разыменовывается.
Это изменение по сравнению с предыдущим поведением, которое раньше занимало соответствующее время у
символическая ссылка; см. раздел ИСТОРИЯ ниже.

-Пермь Поддерживается. Если переменная среды POSIXLY_CORRECT не установлена, какой-то режим
аргументы (например, + a + x), которые недопустимы в POSIX, поддерживаются для
Обратная совместимость.

Другие предикаты
Предикаты -время, -ctime, -глубина, -группа, -ссылки, -MTime, -ногруппа, -нузер,
-Распечатать, -чернослив, -размер, -user и -xdev -atime, -ctime, -depth, -group,
-links, -mtime, -nogroup, -nouser, -perm, -print, -prune, -size,
`-user 'и` -xdev' все поддерживаются.

Стандарт POSIX определяет круглые скобки `(',`)', отрицание `! ' и `и 'и` или'
операторы ( -a, -o).

Все остальные параметры, предикаты, выражения и т. Д. Являются расширениями за пределами POSIX.
стандарт. Однако многие из этих расширений не являются уникальными для GNU find.

Стандарт POSIX требует, чтобы найдите обнаруживает петли:

Ассоциация найдите утилита обнаруживает бесконечные циклы; то есть ввод ранее
посещенный каталог, который является предком последнего обнаруженного файла. Когда это
обнаруживает бесконечный цикл, find должен написать диагностическое сообщение для стандартной ошибки
и должен либо восстановить свое положение в иерархии, либо прекратить свое существование.

GNU найдите соответствует этим требованиям. Количество ссылок каталогов, содержащих
записи, которые являются жесткими ссылками на предка, часто будут ниже, чем они должны были бы
быть. Это может означать, что GNU find иногда оптимизирует посещение
подкаталог, который на самом деле является ссылкой на предка. С найдите фактически не входит
такой подкаталог позволяет избежать выдачи диагностического сообщения. Хотя это
поведение может несколько сбивать с толку, маловероятно, что кто-то действительно зависит от этого
поведение. Если оптимизация листа была отключена с помощью -без листьев, запись в каталоге
всегда будет проверяться, и при необходимости будет выдано диагностическое сообщение.
Символические ссылки нельзя использовать для создания циклов файловой системы как таковых, но если -L Вариант или
домен -следовать опция используется, диагностическое сообщение выдается, когда найдите встречает петлю
символических ссылок. Как и в случае с циклами, содержащими жесткие ссылки, листовая оптимизация часто
означают, что найдите знает, что звонить не нужно стат () or chdir () по символической ссылке,
поэтому в этой диагностике часто нет необходимости.

Ассоциация -d опция поддерживается для совместимости с различными системами BSD, но вы должны использовать
опция, совместимая с POSIX -глубина .

Переменная среды POSIXLY_CORRECT не влияет на поведение -регулярное выражение or
-iregex тесты, потому что эти тесты не указаны в стандарте POSIX.

ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ


LANG Предоставляет значение по умолчанию для переменных интернационализации, которые не установлены или
значение NULL.

LC_ALL Если установлено непустое строковое значение, переопределить значения всех остальных
переменные интернационализации.

LC_COLLATE
Стандарт POSIX указывает, что эта переменная влияет на сопоставление с образцом, чтобы
используется для -имя вариант. GNU find использует фнматч(3) библиотечная функция и т. Д.
поддержка LC_COLLATE зависит от системной библиотеки. Эта переменная также
влияет на интерпретацию ответа на -Ok; а переменная LC_MESSAGES
выбирает фактический шаблон, используемый для интерпретации ответа на -Хорошо,
интерпретация любых скобочных выражений в шаблоне будет зависеть от
LC_COLLATE.

LC_CTYPE
Эта переменная влияет на обработку классов символов, используемых в обычных
выражения, а также с -имя проверить, если система фнматч(3) библиотека
функция поддерживает это. Эта переменная также влияет на интерпретацию любого
классы символов в регулярных выражениях, используемых для интерпретации ответа на
подсказка выдана -Хорошо. Переменная среды LC_CTYPE также будет влиять на то, какие
символы считаются непечатаемыми, когда печатаются имена файлов; увидеть
раздел НЕОБЫЧНЫЕ ФАЙЛЫ.

LC_MESSAGES
Определяет языковой стандарт, который будет использоваться для интернационализированных сообщений. Если
Установлена ​​переменная среды POSIXLY_CORRECT, она также определяет
интерпретация ответа на подсказку, сделанную -Хорошо действия.

НЛПСАТ
Определяет расположение каталогов сообщений интернационализации.

PATH Влияет на каталоги, в которых выполняется поиск исполняемых файлов, вызываемых
-Exec, -execdir, -Хорошо и -окдир.

POSIXLY_CORRECT
Определяет размер блока, используемого -ls и -fls. Если POSIXLY_CORRECT установлено, блоки
единицы по 512 байт. В противном случае они имеют размер 1024 байта.

Установка этой переменной также отключает предупреждающие сообщения (то есть подразумевает -новаться) от
по умолчанию, потому что POSIX требует, чтобы помимо вывода для -Хорошо, все сообщения
напечатанные на stderr являются диагностическими и должны приводить к ненулевому состоянию выхода.

Когда POSIXLY_CORRECT не установлен, -Пермь + zzz обрабатывается так же, как -Пермь / zzz если + zzz
не является допустимым символическим режимом. Когда установлен POSIXLY_CORRECT, такие конструкции
рассматривается как ошибка.

Когда установлен POSIXLY_CORRECT, ответ на запрос, сделанный -Хорошо действие
интерпретируется согласно каталогу сообщений системы, а не согласно
найдитепереводы собственных сообщений.

TZ Влияет на часовой пояс, используемый для некоторых директив формата времени
-printf и -fprintf.

ПРИМЕРЫ


найдите / Tmp -имя ядро Типа f -Распечатать | xargs / bin / rm -f

Найдите файлы с именами ядро в каталоге или ниже / Tmp и удалите их. Обратите внимание, что это будет
работать некорректно, если есть имена файлов, содержащие символы новой строки, одинарные или двойные кавычки,
или пробелы.

найдите / Tmp -имя ядро Типа f -print0 | xargs -0 / bin / rm -f

Найдите файлы с именами ядро в каталоге или ниже / Tmp и удалите их, обрабатывая имена файлов
таким образом, чтобы имена файлов или каталогов, содержащие одинарные или двойные кавычки, пробелы или
новые строки правильно обрабатываются. В -имя тест идет до Типа испытать, чтобы
не звонить состояние(2) на каждый файл.

найдите . Типа f -Exec файл '{}' \;

Запускает "файл" для каждого файла в текущем каталоге или ниже него. Обратите внимание, что фигурные скобки
заключены в одинарные кавычки, чтобы защитить их от интерпретации как сценарий оболочки
пунктуация. Точка с запятой также защищена обратной косой чертой, хотя
и в этом случае можно было использовать одинарные кавычки.

найдите / \( -Пермь -4000 -fprintf /root/suid.txt '% # m %u % p \ n ' \) , \
\( -размер + 100M -fprintf /корень/big.txt '% -10 сек % p \ n ' \)

Пройдите по файловой системе только один раз, перечислив файлы и каталоги setuid в
/root/suid.txt и большие файлы в /корень/big.txt.

найдите $ HOME -MTime 0

Искать файлы в вашем домашнем каталоге, которые были изменены за последние двадцать четыре года.
часы. Эта команда работает таким образом, потому что время, прошедшее с момента последнего изменения каждого файла, равно
делится на 24 часа, а остаток отбрасывается. Это означает, что для соответствия -MTime 0, чтобы
файл должен быть изменен в прошлом менее 24 часов назад.

найдите / SBIN / usr / sbin -исполняемый \! -удобочитаемый -Распечатать

Искать файлы, которые являются исполняемыми, но не читаемыми.

найдите . -Пермь 664

Искать файлы, у которых есть права на чтение и запись для их владельца и группы, но
которые другие пользователи могут читать, но не могут писать. Файлы, соответствующие этим критериям, но имеющие
другие установленные биты разрешений (например, если кто-то может выполнить файл) не будут
соответствует.

найдите . -Пермь -664

Искать файлы, у которых есть права на чтение и запись для их владельца и группы, и которые
другие пользователи могут читать, независимо от наличия каких-либо дополнительных битов разрешения (для
пример исполняемого бита). Это будет соответствовать, например, файлу с режимом 0777.

найдите . -Пермь / 222

Искать файлы, которые доступны для записи кем-либо (их владельцем, группой или кем-либо
еще).

найдите . -Пермь / 220
найдите . -Пермь / и + ш, г + ш
найдите . -Пермь / u = w, g = w

Все три команды делают одно и то же, но первая использует восьмеричное
представление файлового режима, а два других используют символьную форму. Эти команды
все ищут файлы, которые доступны для записи либо их владельцу, либо их группе. Файлы
не должны быть доступны для записи как владельцу, так и группе для сопоставления; либо подойдет.

найдите . -Пермь -220
найдите . -Пермь -g + w, u + w

Обе эти команды делают одно и то же; искать файлы, которые доступны для записи обоими
владелец и их группа.

найдите . -Пермь -444 -Пермь / 222 ! -Пермь / 111
найдите . -Пермь -a + r -Пермь / а + ш ! -Пермь / а + х

Обе эти две команды ищут файлы, доступные для чтения всем ( -Пермь -444 or
-Пермь -a + r), иметь хотя бы один установленный бит записи ( -Пермь / 222 or -Пермь / а + ш) но не
исполняемый файл для всех ( ! -Пермь / 111 и ! -Пермь / а + х соответственно).

cd / исходный-каталог
найдите . -имя .моментальный снимок -чернослив -o \( \! -имя *~ -print0 \) |
CPIO -pmd0 / dest-dir

Эта команда копирует содержимое / исходный-каталог в / dest-dir, но опускает файлы и
каталоги, названные .моментальный снимок (и ничего в них). Он также не включает файлы или каталоги.
чье имя заканчивается на ~, но не их содержимое. Конструкция -чернослив -o \( ... -print0 \)
довольно часто. Идея здесь в том, что выражение до -чернослив совпадает с вещами, которые
подлежат обрезке. Однако -чернослив само действие возвращает истину, поэтому следующие -o
гарантирует, что правая часть оценивается только для тех каталогов, которые не получили
сокращены (содержимое сокращенных каталогов даже не посещается, поэтому их содержимое
не имеющий отношения). Выражение в правой части -o находится в скобках только для
ясность. Он подчеркивает, что -print0 действие имеет место только для вещей, которые не
иметь -чернослив применяется к ним. Поскольку условие `и 'по умолчанию между тестами связывает больше
плотнее, чем -o, в любом случае это значение по умолчанию, но круглые скобки помогают показать, что
продолжается.

найдите репо / -Exec тестXNUMX -d {} /. svn \; Или \
-Exec тестXNUMX -d {} /. git \; Или -Exec тестXNUMX -d {} / CVS \; \
-Распечатать -чернослив

Учитывая следующий каталог проектов и связанных с ними администраторов SCM
справочники, оперативный поиск корней проектов:

репо / проект1 / CVS
репо / GNU / Project2 / .svn
репо / GNU / Project3 / .svn
репо / GNU / Project3 / SRC / .svn
репо / проект4 / .git

В этом примере -чернослив предотвращает ненужный спуск в каталоги, в которых уже есть
было обнаружено (например, мы не ищем project3 / src, потому что мы уже нашли
project3 / .svn), но обеспечивает нахождение дочерних каталогов (project2 и project3).

ВЫХОД статус


найдите завершается со статусом 0, если все файлы обработаны успешно, больше 0, если ошибки
происходить. Это намеренно очень широкое описание, но если возвращаемое значение не
ноль, не стоит рассчитывать на правильность результатов найдите.

Когда возникает какая-то ошибка, найдите может остановиться сразу, не выполнив всех действий
указано. Например, некоторые отправные точки могут не быть изучены или некоторые ожидают рассмотрения.
программные вызовы для -Exec ... {} + or -execdir ... {} + возможно, не было выполнено.

Воспользуйтесь поиском в Интернете с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad