logo

Як рекурсивно знайти всі файли в поточних і підпапках на основі підстановки в Linux

Перехід по дереву каталогів для пошуку файлів є звичайною операцією, яку виконує більшість програм керування файловою системою. У більшості операційних систем ця утиліта представлена ​​у вигляді команд командного рядка. У цій статті ви дізнаєтеся, як знаходити файли за допомогою підстановки зіставлення в операційній системі Linux.

Рекурсивний пошук файлів у дереві каталогів

Використання знайти команду буде зроблено для виконання завдання. Команда «s» використовується для пошуку файлів в ієрархії каталогів. Сторінка довідки команди find виглядає наступним чином:



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

find -name 'Re_Pattern'>

Будь-який файл із Re_Pattern у назві буде відображено як результат. Шаблон може містити літеральні символи або послідовність виразів підстановки. У таких шаблонах використовуються два символи підстановки:

аля манаса

* => Будь-який символ будь-яку кількість разів (може навіть не бути)



? => Має бути присутнім один персонаж

Каталог, у якому виконуватимуться операції:

Каталог, що містить деякі файли та підкаталоги



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

find -name 'apple'>

Оскільки лише один файл у каталозі мав ім’я apple, лише 1 ім’я було показано у вихідних даних. Але якщо ви додасте до нього символ підстановки, наприклад * (зірочка):

find -name '*apple*'>

ми отримали результат для всіх файлів, які містять apple у своїй назві. Так само можна використовувати комбінацію таких символів підстановки. Пр. Якщо ми хочемо отримати всі файли, які мають 4 символи в назві, команда буде такою:

find -name '????'>

Отже, використовуючи ці два символи підстановки, можна створити масив шаблонів для розпізнавання кількох імен файлів. Команда find містить інші перемикачі, які дозволяють оптимізувати вихід.

колесо миші не прокручується належним чином