find command unix
Вступ до команди пошуку в Unix: пошук файлів і каталогів за допомогою команди пошуку файлів Unix
Команда Unix find - це потужна утиліта для пошуку файлів або каталогів.
Пошук може базуватися на різних критеріях, а відповідні файли можна запускати за допомогою визначених дій. Ця команда рекурсивно спускає ієрархію файлу для кожного вказаного імені шляху.
=> Клацніть тут, щоб переглянути повну серію підручників Unix
Що ви дізнаєтесь:
безкоштовна альтернатива швидким книгам для малого бізнесу
Знайдіть команду в Unix
Синтаксис:
find (options) (paths) (expression)
Параметри цієї команди використовуються для визначення способу обробки символічних посилань. Далі слідує набір шляхів для пошуку. Якщо шляхи не вказані, використовується поточний каталог. Потім даний вираз виконується на кожному з файлів, знайдених у шляхах.
Вираз складається з ряду опцій, тестів та дій, кожен з яких повертає логічну форму. Вираз обчислюється зліва направо для кожного файлу у шляху, доки не буде визначений результат, тобто результат буде відомим як true або false.
- Вирази опцій використовуються для обмеження операції пошуку і завжди повертають true.
-
- -depth: обробляти вміст каталогу перед обробкою самого каталогу.
- -maxdepth: максимальні рівні нижче від наданих шляхів, щоб спуститися на відповідність.
- -mindepth: мінімальні рівні поза наданими шляхами, що спускаються до зіставлення.
-
- Тестові вирази використовуються для оцінки конкретних властивостей файлів і відповідного повернення true або false. (Де б не використовувався підрахунок 'n': без будь-якого префікса збіг відповідає точному значенню n; з префіксом '+' збіг для значень, більших за n; а з префіксом '-', збіг для значень, менших за n.)
-
- -atime n: Повертає true, якщо файл було відкрито n днів тому.
- -ctime n: Повертає true, якщо статус файлу було змінено n днів тому.
- -mtime n: Повертає true, якщо вміст файлу було змінено n днів тому.
- -name pattern: Повертає true, якщо ім'я файлу відповідає наданому шаблону оболонки.
- -iname pattern: Повертає true, якщо ім'я файлу відповідає наданому шаблону оболонки. Тут відповідність не враховує регістр.
- -path pattern: Повертає true, якщо ім'я файлу із шляхом відповідає шаблону оболонки.
- -regex pattern: Повертає true, якщо ім'я файлу із шляхом відповідає регулярному виразу.
- -size n: Повертає true, якщо розмір файлу - n блоків.
- -perm - mode: Повертає true, якщо для файлу встановлені всі біти дозволу для режиму.
- -type c: Повертає true, якщо файл має тип c (наприклад, 'b' для файлу блочного пристрою, 'd' для каталогу тощо).
- -username: Повертає true, якщо файл належить імені користувача „name“.
-
- Вирази дії використовуються для визначення дій, які мають побічні ефекти і можуть повернути true або false. Якщо не вказані дії, дія „-print” виконується для всіх відповідних файлів.
-
- -delete: Видаліть відповідний файл і в разі успіху поверніть true.
- -exec команда: Виконайте задану команду для кожного відповідного файлу та поверніть true, якщо значення повернення 0.
- -ok команда: Подібно виразу ‘exec’, але спочатку підтверджує з користувачем.
- -ls: Перелічіть відповідний файл у форматі ‘ls -dils’.
- -print: Надрукуйте ім'я відповідного файлу.
- -prune: Якщо файл є каталогом, не спускайтеся в нього, а повертайте true.
-
- Вираз обчислюється зліва направо і складається разом з наступними операторами.
-
- ( вираз ) : Використовується для встановлення пріоритету.
- ! expr: Використовується для заперечення виразу.
- вираз1 -до expr2: Результатом є 'і' двох виразів. Expr2 обчислюється лише, якщо expr1 є true.
- expr1 expr2: У цьому випадку оператор ‘і’ є неявним.
- вираз1 -або expr2: Результат - це «або» з двох виразів. Вираз expr2 обчислюється лише, якщо expr1 є помилковим.
-
Приклади
Перелічіть усі файли, знайдені в поточному каталозі, та його ієрархію
$ find.
Перелічіть усі файли, знайдені в поточній ієрархії, та всю ієрархію нижче / home / xyz
$ find. /home/XYZ
Шукайте файл за назвою abc у поточному каталозі та його ієрархії
$ find ./ -name abc
Шукайте каталог за назвою xyz у поточному каталозі та його ієрархії
$ find ./ -type d -name xyz
Знайдіть файл під назвою abc.txt під поточним каталогом та запропонуйте користувачеві видалити кожну відповідність.
Зверніть увагу, що рядок “{}” під час запуску замінюється фактичною назвою файлу, а “;” рядок використовується для завершення виконуваної команди.
$ find ./ -name abc.txt -exec rm -i {} ;
Шукайте файли, які були змінені за останні 7 днів у поточному каталозі
$ find ./ -mtime -7
Шукайте файли, які мають усі дозволи, встановлені в поточній ієрархії
$ find ./ -perm 777
Висновок
Коротше кажучи, Find Command в Unix повертає всі файли, розташовані нижче поточного робочого каталогу. Крім того, команда find дозволяє користувачеві вказати дію, яку слід виконати з кожним відповідним файлом.
=> Клацніть тут, щоб переглянути повну серію підручників Unix
Рекомендована література
- Вирізати команду в Unix з прикладами
- Команда Ls в Unix з прикладами
- Маніпулювання файлами в Unix: огляд файлової системи Unix
- Синтаксис команд Unix Cat, варіанти з прикладами
- Команда Grep в Unix на простих прикладах
- Команда сортування Unix із синтаксисом, опціями та прикладами
- Команда Tar в Unix для створення резервних копій (приклади)
- Як порівняти два файли в Unix: команди порівняння файлів