англійськафранцузькаіспанська

Ad


Значок OnWorks

знайти - онлайн у хмарі

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

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

ПРОГРАМА:

ІМ'Я


find - пошук файлів в ієрархії каталогів

СИНТАКСИС


знаходити [-H] [-L] [-P] [-D налагодження] [-Olevel] [початкова точка...] [вираз]

ОПИС


Ця сторінка посібника документує версію GNU знаходити. GNU знаходити шукає в дереві каталогів
вкорінюється в кожній заданій початковій точці шляхом обчислення даного виразу зліва направо,
згідно з правилами пріоритету (див. розділ ОПЕРАТОРИ), доки не буде відомий результат
(ліва сторона невірна для та операцій, вірно для or), в який момент знаходити рухається
до наступного імені файлу. Якщо початкова точка не вказана, `.' передбачається.

Якщо ви використовуєте знаходити в середовищі, де безпека важлива (наприклад, якщо ви
використовуєте його для пошуку каталогів, доступних для запису іншим користувачам), вам слід прочитати
Розділ «Мірки безпеки» документації findutils, який називається Виявлення
Файли і поставляється з findutils. Цей документ також містить набагато більше деталей і
обговорення, ніж ця сторінка посібника, тож ви можете вважати її більш корисним джерелом інформації.

ВАРІАНТИ


Команда -H, -L та -P параметри контролюють обробку символічних посилань. Аргументи командного рядка
наступні вважаються іменами файлів або каталогів, які потрібно перевірити, аж до
перший аргумент, який починається з "-", або аргумент "(" або "!". Цей аргумент і будь-який
наступні аргументи вважаються виразом, що описує те, що потрібно шукати.
Якщо шляхи не вказано, використовується поточний каталог. Якщо вираз не вказано,
вираз -друк використовується (але вам, ймовірно, слід розглянути можливість використання -друк0 замість цього
так чи інакше).

Ця довідкова сторінка розповідає про `параметри' у списку виразів. Ці параметри керують
поведінка знаходити але вказуються відразу після останнього імені шляху. П'ять
"справжні" варіанти -H, -L, -P, -D та -O має бути перед першим ім'ям шляху, якщо взагалі є. А
подвійне тире -- також можна використовувати для сигналу про те, що будь-які інші аргументи не є варіантами
(хоча переконатися, що всі початкові точки починаються з `./' або `/', як правило, безпечніше, якщо
Ви використовуєте символи підстановки у списку початкових точок).

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

-L Перейдіть за символічними посиланнями. Коли знаходити перевіряє або друкує інформацію про файли,
використана інформація береться з властивостей файлу, на який є посилання
точок, а не з самого посилання (якщо це не пошкоджене символічне посилання або знаходити is
неможливо перевірити файл, на який вказує посилання). Використання цього варіанту передбачає
-noleaf. Якщо пізніше ви використаєте -P варіант -noleaf все ще буде чинним. Якщо -L
діє і знаходити виявляє символічне посилання на підкаталог під час його
пошук, пошук здійснюватиметься у підкаталозі, на який вказує символічне посилання.

Коли -L дієвий варіант -типу предикат завжди збігатиметься з
тип файлу, на який вказує символічне посилання, а не саме посилання (якщо не
символічне посилання розірване). Дії, які можуть викликати символічні посилання
зламаний у той час знаходити виконується (наприклад -видалити) може призвести до плутанини
поведінка. Використання -L причини - Ім'я та -ilname предикати завжди повертаються
помилковий.

-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 допомога. Допустимі параметри налагодження включають

допомога Пояснити параметри налагодження

дерево Показує дерево виразів у його оригінальній та оптимізованій формі.

stat Друкувати повідомлення, коли файли перевіряються за допомогою stat та lstat системні дзвінки.
Команда знаходити програма намагається мінімізувати такі дзвінки.

opt Друкує діагностичну інформацію щодо оптимізації виразу
дерево; перегляньте опцію -O.

rates Друкує підсумок із зазначенням того, як часто кожен предикат був успішним або невдалим.

-Орівень
Вмикає оптимізацію запитів. The знаходити програма змінює порядок тестів, щоб прискорити виконання
при збереженні загального ефекту; тобто предикати з побічними ефектами не є
переупорядковані відносно один одного. Оптимізації, виконані під час кожної оптимізації
рівні такі.

0 Еквівалентно рівню оптимізації 1.

1 Це стандартний рівень оптимізації, який відповідає традиційному
поведінка. Вирази змінено таким чином, що тести базуються лише на іменах
файлів (наприклад -ім'я та -регулярний вираз) виконуються першими.

2 Будь-який -типу or -xtype випробування проводяться після будь-яких випробувань, заснованих лише на
імена файлів, але перед будь-якими тестами, які потребують інформації з
inode. У багатьох сучасних версіях Unix типи файлів повертаються
readdir() тому ці предикати обчислюються швидше, ніж предикати
яким спочатку потрібно задати файл. Якщо ви використовуєте -fstype FOO присудок і
вказати тип файлової системи FOO який невідомий (тобто присутній у
`/ etc / mtab') у той час знаходити починається, цей предикат еквівалентний
-помилковий.

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

Оптимізатор на основі витрат має фіксоване уявлення про те, наскільки ймовірно будь-який тест
досягати успіху. У деяких випадках ймовірність враховує специфічний характер
тест (наприклад, -типу f передбачається, що більше шансів на успіх, ніж -типу c).
Оптимізатор на основі витрат наразі оцінюється. Якщо це не так насправді
покращити продуктивність знаходити, його буде знову видалено. І навпаки,
оптимізації, які виявилися надійними, надійними та ефективними, можна ввімкнути на
зниження рівня оптимізації з часом. Однак поведінка за замовчуванням (тобто
рівень оптимізації 1) не буде змінено в серії випусків 4.3.x. The
Набір тестів findutils виконує всі тести на знаходити на кожному рівні оптимізації та
гарантує, що результат буде однаковим.

ВИСНОВОК


Частина командного рядка після списку початкових точок є вираз, Це
свого роду специфікація запиту, яка описує, як ми зіставляємо файли та що ми робимо з файлами
які були зіставлені. Вираз складається з послідовності елементів:

Тести Тести повертають істинне або хибне значення, зазвичай на основі певної властивості файлу
ми розглядаємо. The -порожній тест, наприклад, вірний лише тоді, коли поточний файл
пусто.

Дії
Дії мають побічні ефекти (наприклад, друк чогось на стандартному виводі) і
повертають істину або хибність, як правило, залежно від того, успішні вони чи ні.
Команда -друк дія, наприклад, друкує назву поточного файлу на стандарті
вихід.

Глобальні варіанти
Глобальні параметри впливають на роботу тестів і дії, визначені в будь-якій частині
командний рядок. Глобальні параметри завжди повертають true. The - глибина варіант для
приклад робить знаходити проходити файлову систему в порядку глибини.

Позиційні варіанти
Позиційні опції впливають лише на тести або дії, які слідують за ними. Позиційний
параметри завжди повертають true. The -regextype варіант наприклад позиційний,
визначення діалекту регулярних виразів для регулятивних виразів, що виникають пізніше
у командному рядку.

Оператори
Оператори об’єднують інші елементи у виразі. Вони включають для
приклад -o (що означає логічне АБО) і -a (що означає логічне І). Де знаходиться оператор
відсутній, -a передбачається.

Якщо весь вираз не містить жодних дій, крім - чорнослив or -друк, -друк is
виконується для всіх файлів, для яких весь вираз є істинним.

Команда -видалити дія також діє як варіант (оскільки передбачає - глибина).

ПОЗИЦІЙНИЙ ВАРІАНТИ
Позиційні параметри завжди повертають true. Вони впливають лише на тести, які відбуваються пізніше
command line.

-початок дня
Вимірюйте час (для -амін, -Час, -см, -ctime, - хв та -Mtime) З
початок сьогодні, а не 24 години тому. Ця опція стосується лише тестів
які з’являться пізніше в командному рядку.

- слідувати
Застаріле; використовувати -L натомість. Розіменування символічних посилань. Має на увазі
-noleaf, - слідувати параметр впливає лише на ті тести, які з’являються після нього на
командний рядок. Хіба що -H or -L параметр було зазначено, позиція в
- слідувати параметр змінює поведінку -новіший присудок; будь-які файли, перелічені як
аргумент -новіший буде розіменовано, якщо це символічні посилання. Так само
розгляд стосується -новішийXY, -новіше та -новіший. Аналогічно -типу
предикат завжди співпадатиме з типом файлу, який символічне посилання
вказує, а не на саме посилання. Використання - слідувати причини - Ім'я та -ilname
предикати завжди повинні повертати false.

-regextype тип
Змінює синтаксис регулярного виразу, який розуміє -регулярний вираз та -ірегекс тести, які
відбуваються пізніше в командному рядку. Щоб побачити, які типи регулярних виразів відомі,
використання -regextype допомога. Документація Texinfo (див СМ ТАКОЖ) пояснює значення
і відмінності між різними типами регулярних виразів.

-попереджають, -попереджають
Увімкніть або вимкніть попередження. Ці попередження стосуються лише командного рядка
використання, а не будь-яких умов, які знаходити може зустрітися під час пошуку
довідники. Поведінка за замовчуванням відповідає - попередити якщо стандартним введенням є a
tty, і до - попередити інакше. Якщо з’являється попередження про використання командного рядка
виробляється, статус виходу знаходити не впливає. Якщо POSIXLY_CORRECT
встановлено змінну середовища, і - попередити is Також б / в, it is НЕ зазначений котрий, if
будь-який, попередження волі be активний.

GLOBAL ВАРІАНТИ
Глобальні параметри завжди повертають true. Глобальні параметри діють навіть для тестів, які відбуваються
раніше в командному рядку. Щоб уникнути плутанини, глобальні параметри повинні бути вказані на
командний рядок після списку початкових точок, безпосередньо перед першим тестом, позиційний параметр
або дії. Якщо ви вкажете глобальний параметр в іншому місці, знаходити видасть попередження
повідомлення, яке пояснює, що це може заплутати.

Глобальні параметри з’являються після списку початкових точок, тому не є однаковими
варіант як -L, Наприклад.

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

-depth Обробляти вміст кожного каталогу перед самим каталогом. Дія -delete
також передбачає - глибина.

-допоможіть, --допоможіть
Надрукуйте короткий опис використання командного рядка знаходити і вийти.

-ignore_readdir_race
Зазвичай знаходити видасть повідомлення про помилку, якщо не вдасться зареєструвати файл. Якщо ви
укажіть цю опцію, і файл буде видалено між часом знаходити читає назву в
файл із каталогу та час спроби stat файлу, повідомлення про помилку відсутнє
буде видано. Це також стосується файлів або каталогів, імена яких подано
в командному рядку. Ця опція набуває чинності в той момент, коли відкривається командний рядок
read, що означає, що ви не можете шукати одну частину файлової системи за допомогою цього
опцію увімкнуто, а частину з цією опцією вимкнено (якщо вам потрібно це зробити, ви це зробите
потрібно видати два знаходити натомість команди, одна з параметром і одна без нього).

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

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

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

-noignore_readdir_race
Вимикає ефект -ignore_readdir_race.

-noleaf
Не оптимізуйте, припускаючи, що каталоги містять на 2 підкаталоги менше, ніж
кількість їх жорстких посилань. Цей параметр потрібен під час пошуку файлових систем, які це роблять
не дотримуються конвенції про посилання на каталоги Unix, як-от файлові системи CD-ROM або MS-DOS
або точки монтування тому AFS. Кожен каталог у звичайній файловій системі Unix має at
принаймні 2 жорстких посилання: його назва та його `.' запис. Крім того, його підкаталоги
(якщо є) кожен має запис `..', пов'язаний з цим каталогом. Коли знаходити обстежує а
каталог, після того, як він вказав на 2 підкаталоги менше, ніж посилання на каталог
count, він знає, що решта записів у каталозі не є каталогами
(`листові' файли в дереві каталогів). Якщо потрібні лише імена файлів
оглянуті, немає потреби їх констатувати; це дає значне збільшення
швидкість пошуку.

-версія, --версія
Друк знаходити номер версії та вихід.

-xdev Не опускати каталоги в інших файлових системах.

ВИПРОБУВАННЯ
Деякі тести, наприклад -новішийXY та - той самий файл, дозволяють порівнювати файли
на даний момент перевіряється та деякий довідковий файл, указаний у командному рядку. Коли
ці тести використовуються, інтерпретація довідкового файлу визначається
опції -H, -L та -P і будь-які попередні - слідувати, але довідковий файл лише перевіряється
один раз під час аналізу командного рядка. Якщо довідковий файл не можна перевірити
(наприклад, stat(2) системний виклик для нього не вдається), видається повідомлення про помилку та знаходити
виходить із ненульовим статусом.

Числові аргументи можна вказати як

+n більше ніж n,

-n менше ніж n,

n для точно n.

-амін n
Останній доступ до файлу n хвилин тому.

-новіше файл
Останній доступ до файлу здійснювався нещодавно файл було змінено. Якщо файл є символічним
посилання та -H опція або -L час доступу до файлу
це вказує на завжди використовується.

-Час n
Останній доступ до файлу n*24 години тому. Коли знаходять цифри, скільки 24 годин
періоди тому файл востаннє звертався, будь-яка дробова частина ігнорується, тому для відповідності
-Час +1, має бути принаймні доступ до файлу два днів тому.

-см n
Остання зміна статусу файлу n хвилин тому.

-новіший файл
Востаннє статус файлу було змінено нещодавно файл було змінено. Якщо файл це
символічне посилання та -H опція або -L опція діє, статус-зміна
завжди використовується час файлу, на який він вказує.

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

-empty Файл порожній і є звичайним файлом або каталогом.

- виконуваний файл
Збігає файли, які є виконуваними, і каталоги, які доступні для пошуку (у файлі
значення роздільної здатності імені). При цьому враховуються списки контролю доступу та інше
артефакти дозволів, які -завивка тест ігнорує. Цей тест використовує
доступ(2) системний виклик, тому його можуть обдурити сервери NFS, які виконують відображення UID (або
root-squashing), оскільки багато систем реалізують доступ(2) в ядрі клієнта і
тому не може використовувати інформацію зіставлення UID, що зберігається на сервері. Тому що це
Тест базується тільки на результатах доступ(2) системний виклик, немає
гарантувати, що файл, для якого цей тест пройшов успішно, дійсно може бути виконано.

-false Завжди false.

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

-гід n Ідентифікатор числової групи файлу n.

-група gname
Файл належить до групи gname (дозволений числовий ідентифікатор групи).

-ilname модель
Люблю - Ім'я, але збіг не враховує регістр. Якщо -L опція або - слідувати
параметр діє, цей тест повертає false, якщо символічне посилання не пошкоджено.

-інам модель
Люблю -ім'я, але збіг не враховує регістр. Наприклад, шаблони `fo*' і
`F??' відповідати іменам файлів `Foo', `FOO', `foo', `fOo' тощо. Шаблон `*foo*`
також відповідатиме файлу під назвою «.foobar».

-інум n
Файл має номер inode n. Зазвичай простіше використовувати - той самий файл тест натомість.

-іпат модель
Люблю -доріжка. але збіг нечутливий до регістру.

-ірегекс модель
Люблю -регулярний вираз, але збіг не враховує регістр.

-повне ім'я модель
Дивіться -ipath. Ця альтернатива менш портативна, ніж -іпат.

-посилання n
Файл має n посилання

- Ім'я модель
Файл — це символічне посилання, вміст якого відповідає шаблону оболонки модель,
метасимволи не обробляють `/' або `.' спеціально. Якщо -L опція або - слідувати
параметр діє, цей тест повертає false, якщо символічне посилання не пошкоджено.

- хв n
Дані файлу були востаннє змінені n хвилин тому.

-Mtime n
Дані файлу були востаннє змінені n*24 години тому. Перегляньте коментарі до -Час до
зрозуміти, як округлення впливає на інтерпретацію часу модифікації файлу.

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

-новіший файл
Файл було змінено нещодавно ніж файл. Якщо файл є символічним посиланням і -H
опція або -L параметр діє, час модифікації файлу, на який він вказує
to завжди використовується.

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

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

m Час модифікації файлу посилання
t посилання трактується безпосередньо як час

Деякі комбінації недійсні; наприклад, він недійсний для X бути t, Дещо
комбінації реалізовані не на всіх системах; наприклад B не підтримується на
всі системи. Якщо недійсна або непідтримувана комбінація XY вказано, фатальний
результати помилок. Специфікації часу інтерпретуються як аргумент для -d
варіант GNU дата. Якщо ви спробуєте використати час народження довідкового файлу та
час народження не може бути визначено, виникає повідомлення про фатальну помилку. Якщо ви вкажете a
тест, який стосується часу народження файлів, що перевіряються, цей тест не пройде
для будь-яких файлів, час народження яких невідомий.

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

- носовий
Жоден користувач не відповідає числовому ідентифікатору користувача файлу.

-доріжка модель
Назва файлу відповідає шаблону оболонки модель. Метасимволи не обробляють `/' або
`.' спеціально; так, наприклад,
знайти . -шлях "./sr*sc"
надрукує запис для каталогу під назвою `./src/misc' (якщо він існує). Ігнорувати
ціле дерево каталогів, використовуйте - чорнослив а не перевіряти кожен файл у дереві.
Наприклад, щоб пропустити каталог `src/emacs' і всі файли та каталоги в ньому
і надрукуйте назви інших знайдених файлів, виконайте щось на зразок цього:
знайти . -шлях ./src/emacs -prune -o -print
Зауважте, що тест на відповідність шаблону застосовується до всього імені файлу, починаючи з одного
початкових точок, названих у командному рядку. Було б сенс використовувати лише an
абсолютна назва шляху тут, якщо відповідна початкова точка також є абсолютним шляхом. Це
означає, що ця команда ніколи нічого не збігатиме:
find bar -path /foo/bar/myfile -print
Знайти порівнює -доріжка аргумент із конкатенацією імені каталогу та
базове ім'я файлу, який він перевіряє. Оскільки конкатенація ніколи не закінчиться на
коса лінія, -доріжка аргументи, що закінчуються скісною рискою, не відповідатимуть нічого (за винятком, можливо, a
початкова точка, указана в командному рядку). Присудок -доріжка також підтримується
від 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, але це може бути
змінився з -regextype варіант.

- той самий файл ім'я
Файл посилається на той самий inode, що й ім'я. Коли -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 байт.

-true Завжди правда.

-типу c
Файл має тип c:

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

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

d каталог

p названий канал (FIFO)

f звичайний файл

l символьне посилання; це ніколи не правда, якщо -L опція або - слідувати опція
фактично, якщо символічне посилання не пошкоджено. Якщо ви хочете шукати
символічні посилання коли -L діє, використ -xtype.

s розетка

D двері (Соляріс)

-uid n Числовий ідентифікатор користувача файлу n.

- б/в n
Останній доступ до файлу n днів після останньої зміни статусу.

-користувач Uname
Файл належить користувачеві Uname (дозволений числовий ідентифікатор користувача).

- ціле ім'я модель
Бачити -стежка. Ця альтернатива менш портативна, ніж -доріжка.

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

-xtype c
Такий же як і -типу якщо файл не є символічним посиланням. Для символічних посилань: якщо
-H or -P було вказано значення true, якщо файл є посиланням на файл типу c; якщо
-L надано варіант, істина, якщо c є "l". Іншими словами, символічно
посилання, -xtype перевіряє тип файлу, який -типу не перевіряє.

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

ДІЇ
-видалити
Видалити файли; true, якщо видалення вдалося. Якщо видалення не вдалося, повідомлення про помилку
видається. Якщо -видалити не вдається, знаходитиСтатус виходу буде ненульовим (коли він
зрештою виходить). Використання -видалити автоматично вмикає `- глибина'варіант.

Попередження: Не забувайте, що командний рядок find обчислюється як вираз, отже
покласти -видалити перший зробить знаходити спробуйте видалити все, що нижче початку
очок, які ви вказали. При тестуванні a знаходити командний рядок, який ви плануєте пізніше
використовувати з -видалити, слід чітко вказати - глибина щоб уникнути пізніше
сюрпризи. Оскільки -видалити мається на увазі - глибина, ви не можете використати з користю - чорнослив та
-видалити разом.

Exec- команда ;
Виконати команда; true, якщо повертається статус 0. Усі наступні аргументи до знаходити він має
розглядаються як аргументи команди, доки аргумент не складається з `;' є
зіткнувся. Рядок `{}' замінюється поточною назвою файлу, що обробляється
скрізь, де воно трапляється в аргументах команди, а не лише в аргументах where
він один, як у деяких версіях знаходити. Обидві ці конструкції можуть знадобитися
щоб захистити їх від розширення оболонкою.
Див ПРИКЛАДИ розділ для прикладів використання Exec- варіант.
зазначена команда виконується один раз для кожного відповідного файлу. Команда виконується в
початковий каталог. Існують неминучі проблеми безпеки навколо використання
в Exec- дія; ви повинні використовувати -execdir натомість варіант.

Exec- команда {} +
Цей варіант Exec- дія виконує вказану команду для вибраних файлів,
але командний рядок будується шляхом додавання кожного вибраного імені файлу в кінці; в
загальна кількість викликів команди буде значно меншою за кількість
відповідних файлів. Командний рядок побудований приблизно так само, як ксарг Будує
його командні рядки. У команді дозволено лише один екземпляр `{}'. The
команда виконується в початковому каталозі. Якщо знаходити зустрічає помилку, це
іноді може призвести до негайного виходу, тому деякі команди, що очікують на розгляд, можуть не виконуватися
все. Цей варіант Exec- завжди повертає true.

-execdir команда ;

-execdir команда {} +
Люблю Exec-, але вказана команда виконується з підкаталогу, що містить
відповідний файл, який зазвичай не є каталогом, з якого ви почали знаходити, це
набагато безпечніший метод для виклику команд, оскільки він уникає умов гонки
під час вирішення шляхів до відповідних файлів. Як і з Exec- дія, в
форма `+' -execdir створить командний рядок для обробки більш ніж одного збігу
файл, але будь-який заданий виклик команда перелічить лише файли, які існують у
той самий підкаталог. Якщо ви використовуєте цей параметр, ви повинні переконатися, що ваш $ PATH
змінна середовища не посилається на `.'; інакше зловмисник може запустити будь-який
команди, які їм подобаються, залишивши файл із відповідною назвою в каталозі, у якому
ти будеш бігти -execdir. Те саме стосується наявності записів у $ PATH які порожні
або які не є абсолютними назвами каталогу. Якщо знаходити стикається з помилкою, це може
іноді викликають негайний вихід, тому деякі команди, що очікують на виконання, можуть взагалі не виконуватися.
Результат дії залежить від того, чи є + або ; використовується варіант;
-execdir команда {} + завжди повертає true, while -execdir команда {} ; повертає true
лише якщо команда повертається 0.

-fls файл
правда; люблю -ls але напишіть файл як -fprint. Вихідний файл завжди створюється,
навіть якщо предикат ніколи не збігається. Див НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ розділ для
інформація про те, як обробляються незвичні символи в іменах файлів.

-fprint файл
правда; вивести повну назву файлу у файл файл. Якщо файл не існує коли знаходити is
бігти, створено; якщо він існує, він скорочується. Імена файлів
`/dev/stdout' і `/dev/stderr' обробляються спеціально; вони посилаються на стандарт
вихід і вихід стандартної помилки відповідно. Вихідний файл завжди створюється,
навіть якщо предикат ніколи не збігається. Див НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ розділ для
інформація про те, як обробляються незвичні символи в іменах файлів.

-fprint0 файл
правда; люблю -друк0 але напишіть файл як -fprint. Вихідний файл завжди
створений, навіть якщо предикат ніколи не збігається. Див НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ розділ
для отримання інформації про те, як обробляються незвичні символи в назвах файлів.

-fprintf файл формат
правда; люблю -printf але напишіть файл як -fprint. Вихідний файл завжди
створений, навіть якщо предикат ніколи не збігається. Див НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ розділ
для отримання інформації про те, як обробляються незвичні символи в назвах файлів.

-Is True; список поточного файлу в ls -діли формат на стандартний вихід. Блок зараховується
мають 1K блоків, якщо не встановлено змінну середовища POSIXLY_CORRECT, у якій
випадку використовуються 512-байтові блоки. Див НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ розділ для інформації
про те, як обробляються незвичні символи в назвах файлів.

-в порядку команда ;
Люблю Exec- але спочатку запитайте користувача. Якщо користувач погоджується, запустіть команду. Інакше
просто поверніть false. Якщо команда виконується, її стандартний ввід перенаправляється з
/ dev / null.

Відповідь на підказку зіставляється з парою регулярних виразів to
визначити, ствердну чи негативну це відповідь. Це регулярний вираз
отримано від системи, якщо встановлено змінну середовища `POSIXLY_CORRECT', або
інакше від знаходитипереклади повідомлень користувача. Якщо в системі немає відповідних
визначення, знаходитибуде використано власне визначення. У будь-якому випадку,
інтерпретація самого регулярного виразу залежатиме від середовища
змінні 'LC_CTYPE' (класи символів) і 'LC_COLLATE' (діапазони символів і
класи еквівалентності).

-окдір команда ;
Люблю -execdir але спочатку запитайте користувача так само, як і для -в порядку. Якщо користувач робить
не згоден, просто поверніть false. Якщо команда виконується, її стандартним введенням є
перенаправлено з / dev / null.

-друк True; надрукувати повну назву файлу на стандартному виводі, а потім новий рядок. Якщо
ви конвеєруєте вихід знаходити в іншу програму, і там найслабший
можливість того, що файли, які ви шукаєте, можуть містити новий рядок,
тоді вам слід серйозно розглянути можливість використання -друк0 варіант замість -друк, Побачити
НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ розділ для інформації про те, наскільки незвичайні персонажі в
імена файлів обробляються.

-друк0
правда; надрукувати повну назву файлу на стандартному виводі, а потім нульовий символ
(замість символу нового рядка that -друк використовує). Це дозволяє імена файлів, які
містять символи нового рядка або інші типи пробілів, які потрібно правильно інтерпретувати
програми, які обробляють знаходити вихід. Цей варіант відповідає -0 можливість
ксарг.

-printf формат
правда; друкувати формат на стандартному виводі, інтерпретуючи символи "\" і "%"
директиви. Ширину та точність полів можна вказати, як і за допомогою `printf' C
функція. Зверніть увагу, що багато полів друкуються як %s, а не як %d,
і це може означати, що прапори не працюють, як ви могли очікувати. Це також означає, що
прапорець `-' працює (він змушує поля бути вирівняними за лівим краєм). На відміну від -друк,
-printf не додає новий рядок у кінці рядка. Втечі і
директиви:

\a Тривожний дзвінок.

\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 GMT, з дробовою частиною.

Поля часу:

годину Н (00..23)

I година (01..12)

k година (0..23)

л год ( 1..12)

M хвилина (00..59)

p locale's AM або PM

час r, 12 годин (гг:хх:сс [AP]M)

S Секунда (00.00 .. 61.00). Є дробова частина.

Час T, 24 години (гг:хх:сс.)

+ Дата й час, розділені знаком «+», наприклад «2004-04-28+22:22:05.0».
Це розширення GNU. Час вказано в поточному часовому поясі
(на що може вплинути встановлення змінної середовища TZ). The
секундне поле містить дробову частину.

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

Часовий пояс Z (наприклад, EDT) або нічого, якщо часовий пояс неможливо визначити

Поля дати:

скорочена назва дня тижня локалі (нд..сб)

Повна назва дня тижня для локалі, змінна довжина (неділя..субота)

b скорочена назва місяця (січень..грудень)

Повна назва місяця B локалі, змінна довжина (січень..грудень)

c дата й час локалі (Сб, 04 листопада 12:02:33 EST 1989). Формат є
те саме, що і для ctime(3) і тому зберегти сумісність із цим
форматі, у полі секунд немає дробової частини.

д день місяця (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 Обсяг дискового простору, який використовується для цього файлу в блоках 1K. З місця на диску
розподіляється у розмірі, кратному розміру блоку файлової системи, який зазвичай є таким
більше, ніж %s/1024, але також може бути меншим, якщо файл є розрідженим
файлу.

%l Об'єкт символічного посилання (пустий рядок, якщо файл не є символічним посиланням).

%m Біти прав доступу до файлу (у вісімковій системі). Цей параметр використовує "традиційний"
числа, які використовують більшість реалізацій Unix, але якщо ваш конкретний
реалізація використовує незвичайне впорядкування бітів вісімкових дозволів
побачити різницю між фактичним значенням режиму файлу та результатом
від %м. Зазвичай ви бажаєте мати перед цим числом нуль, і
для цього слід використовувати # прапор (як, наприклад, `%#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).

%{ %[ %(
Зарезервовано для подальшого використання.

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

Директиви %m і %d підтримують # , 0 та + прапори, але інші директиви мають
ні, навіть якщо вони друкують числа. Числові директиви, які не підтримують їх
прапори включають G, U, b, D, k та n. Прапор формату `-' підтримується та змінюється
вирівнювання поля від вирівнювання по правому краю (що є за замовчуванням) до лівого-
виправданий.

Див НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ розділ для інформації про те, наскільки незвичайні персонажі в
імена файлів обробляються.

-чорнослив Справжній; якщо файл є каталогом, не спускайтеся в нього. Якщо - глибина дається,
помилковий; ніякого ефекту. Оскільки -видалити мається на увазі - глибина, ви не можете використати з користю - чорнослив
та -видалити разом.

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

ОПЕРАТОРИ
Перераховано в порядку зменшення пріоритету:

( експр )
Силовий пріоритет. Оскільки круглі дужки є особливими для оболонки, ви зазвичай
потрібно їх цитувати. У багатьох прикладах на цій сторінці посібника використовуються зворотні косі риски для
ця мета: `\(...\)' замість `(...)'.

! експр Правда, якщо експр є помилковим. Цей персонаж також зазвичай потребує захисту від
інтерпретація оболонкою.

-не експр
Такий же, як ! експр, але не сумісний з 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. Оператор кома може бути корисним для
пошук кількох різних типів речей, але перетинаючи файлову систему
ієрархія лише один раз. The -fprintf дію можна використовувати для переліку різних відповідних
елементи в кілька різних вихідних файлів.

Зверніть увагу, що -a коли вказано неявно (наприклад, двома тестами, що з’являються без
явний оператор між ними) або явно має вищий пріоритет ніж -o, це
означає що знаходити . -ім'я файл -o -ім'я bfile -друк ніколи не надрукує файл.

НЕЗВИЧАЙНО ІМЕНИ ФАЙЛОВ


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

-print0, -fprint0
Завжди друкуйте точне ім’я файлу без змін, навіть якщо вихід буде a
термінал.

-ls, -fls
Незвичайні персонажі завжди втікають. Пробіл, зворотна коса риска та подвійні лапки
символи друкуються за допомогою екранування в стилі C (наприклад, `\f', `\"').
незвичайні символи друкуються за допомогою вісімкового символу. Інші друковані символи
(Для -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 мають значення, які знаходяться під контролем власників файлів, але які не можуть бути такими
використовується для надсилання довільних даних на термінал, тому вони друкуються як є. The
директиви %f, %h, %l, %p і %P взяті в лапки. Це квотування виконується там же
як для GNU ls. Це інший механізм цитування, як той, для якого використовується -ls
та -fls. Якщо ви можете вирішити, який формат використовувати для виведення знаходити потім
зазвичай краще використовувати `\0' як символ закінчення, ніж використовувати новий рядок як файл
імена можуть містити пробіли та символи нового рядка. Налаштування
Змінна середовища LC_CTYPE використовується для визначення того, які символи мають бути
цитується.

-друк, -фдрук
Цитування обробляється так само, як і для -printf та -fprintf. Якщо ви використовуєте
знаходити у сценарії або в ситуації, коли відповідні файли можуть бути довільними
імена, вам слід розглянути можливість використання -друк0 замість -друк.

Команда -в порядку та -окдір дії вивести поточну назву файлу як є. Це може змінитися в майбутньому
звільнення.

СТАНДАРТИ ВІДПОВІДНІСТЬ


Для максимальної відповідності стандарту POSIX ви повинні встановити POSIXLY_CORRECT
змінна середовища. У стандарті POSIX (IEEE Std
1003.1, видання 2003 року):

-H Ця опція підтримується.

-L Ця опція підтримується.

-ім'я Цей параметр підтримується, але відповідність POSIX залежить від відповідності POSIX
системи fnmatch(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, -ногрупа, - носовий,
-друк, - чорнослив, -розмір, -користувач та -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 іноді оптимізує відвідування a
підкаталог, який насправді є посиланням на предка. Оскільки знаходити фактично не входить
у такому підкаталозі дозволено уникати видачі діагностичного повідомлення. Хоча це
поведінка може бути дещо заплутаною, малоймовірно, що хтось насправді залежить від цього
поведінка. Якщо оптимізацію листа було вимкнено за допомогою -noleaf, запис каталогу
завжди перевірятиметься, а діагностичне повідомлення буде видано, якщо це доречно.
Символічні посилання не можна використовувати для створення циклів файлової системи як таких, але якщо -L варіант або
- слідувати використовується, діагностичне повідомлення видається, коли знаходити натрапляє на петлю
символічних посилань. Як і у випадку з циклами, що містять жорсткі посилання, листова оптимізація часто буде
означає це знаходити знає, що дзвонити не потрібно stat () or chdir() за символічним посиланням,
тому ця діагностика часто не потрібна.

Команда -d опція підтримується для сумісності з різними системами BSD, але вам слід використовувати
POSIX-сумісний варіант - глибина замість цього.

Змінна середовища POSIXLY_CORRECT не впливає на поведінку -регулярний вираз or
-ірегекс тести, тому що ці тести не визначені в стандарті POSIX.

НАВКОЛИШНЄ СЕРЕДОВИЩЕ ЗМІННІ


LANG Надає значення за замовчуванням для змінних інтернаціоналізації, які не налаштовані або
нуль.

LC_ALL Якщо встановлено значення непорожнього рядка, замінити значення всіх інших
змінні інтернаціоналізації.

LC_COLLATE
Стандарт POSIX визначає, що ця змінна впливає на відповідність шаблону
використовується для -ім'я варіант. GNU find використовує fnmatch(3) функція бібліотеки тощо
підтримка `LC_COLLATE' залежить від системної бібліотеки. Ця змінна також
впливає на інтерпретацію відповіді на -в порядку; тоді як змінна `LC_MESSAGES'
вибирає фактичний шаблон, який використовується для інтерпретації відповіді -в порядку,
на інтерпретацію будь-яких дужкових виразів у шаблоні вплине
`LC_COLLATE'.

LC_CTYPE
Ця змінна впливає на обробку класів символів, що використовуються в регулярних
виразів, а також з -ім'я перевірити, якщо система fnmatch(3) бібліотека
функція підтримує це. Ця змінна також впливає на інтерпретацію будь-якої
класи символів у регулярних виразах, що використовуються для інтерпретації відповіді на
підказка видана -в порядку. Змінна середовища `LC_CTYPE' також впливатиме на те
символи вважаються такими, що не друкуються, коли друкуються імена файлів; побачити
розділ НЕЗВИЧАЙНІ ІМЕНА ФАЙЛОВ.

LC_MESSAGES
Визначає локаль, яка буде використовуватися для інтернаціоналізованих повідомлень. Якщо
`POSIXLY_CORRECT' встановлено змінну середовища, це також визначає
інтерпретація відповіді на підказку, зроблену -в порядку дії.

NLSPATH
Визначає розташування каталогів повідомлень інтернаціоналізації.

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 -друк | ксарг /bin/rm -f

Знайдіть файли з іменем ядро в каталозі або нижче / Tmp і видаліть їх. Зауважте, що це буде
працювати некоректно, якщо назви файлів містять символи нового рядка, одинарні або подвійні лапки,
або пробіли.

знаходити / Tmp -ім'я ядро -типу f -друк0 | ксарг -0 /bin/rm -f

Знайдіть файли з іменем ядро в каталозі або нижче / Tmp і видаліть їх, обробляючи імена файлів
таким чином, що імена файлів або каталогів містять одинарні або подвійні лапки, пробіли або
символи нового рядка обробляються правильно. The -ім'я тест передує -типу тест для того, щоб
уникнути необхідності дзвонити stat(2) на кожному файлі.

знаходити . -типу f Exec- файл '{}' \;

Запускає `file' для кожного файлу в або нижче поточного каталогу. Зверніть увагу, що дужки є
взяті в одинарні лапки, щоб захистити їх від інтерпретації як сценарій оболонки
розділові знаки. Крапка з комою так само захищена використанням зворотної скісної риски
одинарні лапки також могли бути використані в цьому випадку.

знаходити / \( -завивка -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \
\( -розмір + 100М -fprintf /root/big.txt '%-10 с %p\n' \)

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

знаходити $ HOME -Mtime 0

Шукайте файли у вашому домашньому каталозі, які були змінені протягом останніх двадцяти чотирьох
години. Ця команда працює таким чином, оскільки час від останньої зміни кожного файлу дорівнює
ділиться на 24 години, а будь-який залишок відкидається. Це означає, що відповідати -Mtime 0, то
файл повинен мати зміни в минулому, що було менше 24 годин тому.

знаходити / sbin / usr / sbin - виконуваний файл \! - читається -друк

Пошук файлів, які можна виконати, але не читати.

знаходити . -завивка 664

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

знаходити . -завивка -664

Шукайте файли, які мають дозвіл на читання та запис для їхнього власника та групи, і які
інші користувачі можуть читати, незалежно від наявності будь-яких додаткових бітів дозволу (для
приклад виконуваного біта). Це відповідатиме, наприклад, файлу з режимом 0777.

знаходити . -завивка / 222

Шукайте файли, які доступні для запису комусь (власнику, групі чи будь-кому
інше).

знаходити . -завивка / 220
знаходити . -завивка /u+w,g+w
знаходити . -завивка /u=w,g=w

Усі ці три команди виконують те саме, але перша використовує вісімкове число
представлення файлового режиму, а інші два використовують символьну форму. Ці команди
всі шукають файли, які можуть записувати їхні власники або їхня група. Файли
не обов’язково бути доступним для запису як власником, так і групою для відповідності; або підійде.

знаходити . -завивка -220
знаходити . -завивка -g+w,u+w

Обидві ці команди роблять те саме; шукати файли, доступні для запису обома
власника та його групи.

знаходити . -завивка -444 -завивка / 222 ! -завивка / 111
знаходити . -завивка -a+r -завивка /a+w ! -завивка /a+x

Ці дві команди шукають файли, доступні для читання всім ( -завивка -444 or
-завивка -a+r), мати принаймні один встановлений біт запису ( -завивка / 222 or -завивка /a+w), але не є
виконуваний для будь-кого ( ! -завивка / 111 та ! -завивка /a+x відповідно).

cd /джерельний каталог
знаходити . -ім'я .моментальний знімок - чорнослив -o \( \! -ім'я *~ -друк0 \)|
cpio -pmd0 /dest-dir

Ця команда копіює вміст /джерельний каталог до /dest-dir, але пропускає файли та
каталогів наз .моментальний знімок (і будь-що в них). Він також пропускає файли або каталоги
ім'я якого закінчується на ~, але не їх вміст. Конструкція - чорнослив -o \( ... -друк0 \)
є досить поширеним. Ідея тут полягає в тому, що вираз перед - чорнослив відповідає речам, які
підлягають обрізанню. Однак, - чорнослив сама дія повертає true, тому наступне -o
гарантує, що права сторона оцінюється лише для тих каталогів, які не отримали
скорочено (вміст скорочених каталогів навіть не відвідується, тому їх вміст є
не має значення). Вираз у правій частині -o в дужках лише для
ясність. У ньому наголошується, що -друк0 дія відбувається лише для речей, які не відбувалися
мати - чорнослив застосовується до них. Тому що стандартна умова «і» між тестами пов’язує більше
щільно ніж -o, це все одно типове, але дужки допомагають показати, що є
продовжувати.

знаходити репо/ Exec- тест -d {}/.svn \; -Або \
Exec- тест -d {}/.git \; -Або Exec- тест -d {}/CVS \; \
-друк - чорнослив

Дано наступний каталог проектів і пов’язаних з ними адміністраторів SCM
каталогів, виконувати ефективний пошук коренів проектів:

repo/project1/CVS
repo/gnu/project2/.svn
repo/gnu/project3/.svn
repo/gnu/project3/src/.svn
repo/project4/.git

У цьому прикладі - чорнослив запобігає непотрібному переходу в каталоги, які вже є
було виявлено (наприклад, ми не шукаємо project3/src, тому що ми вже знайшли
project3/.svn), але забезпечує пошук однорідних каталогів (project2 і project3).

EXIT СТАТУС


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

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

Використовуйте пошук онлайн за допомогою сервісів onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad