Много раз мы сталкиваемся с необходимостью поиска нескольких файлов с разными расширениями, что является обычным сценарием для многих пользователей Linux, особенно при работе в терминале.
Существует несколько утилит Linux, которые мы можем использовать для поиска файлов в файловой системе, но поиск файлов с несколькими расширениями иногда может оказаться сложным и требует специальных команд.
Одной из многих утилит для поиска файлов в файловой системе Linux является утилита find
. В этом руководстве мы рассмотрим несколько примеров использования find для поиска нескольких имен файлов одновременно.
Введение в команду find
Команда find
– это универсальный инструмент, используемый для поиска файлов и каталогов в файловой системе Linux.
Самый простой и общий синтаксис утилиты find выглядит следующим образом:
find директория опции [условия]
Вот краткий обзор ее компонентов:
- директория: Каталог, в котором вы хотите начать поиск.
- опции: Дополнительные параметры для уточнения поиска.
- условия: Условия для поиска файлов или каталогов.
Давайте рассмотрим несколько примеров использования команды find
в Linux.
Поиск по нескольким расширениям файлов
Чтобы найти файлы с разными расширениями, можно использовать параметр -name
в сочетании с оператором -o
(OR), который позволяет указать несколько шаблонов для поиска файлов разных типов.
Давайте рассмотрим несколько примеров, чтобы проиллюстрировать, как это работает.
Пример 1: Поиск файлов .sh и .txt
Предположим, что вам нужно найти все файлы в текущем каталоге с расширениями .sh и .txt, для этого выполните следующую команду:
find . -type f \( -name "*.sh" -o -name "*.txt" \)

Интерпретация команды выше:
.
означает текущий каталог-type
используется для указания типа файла, и здесь мы ищем обычные файлы, как представлено вf
-name
используется для указания шаблона поиска, в данном случае – расширения файлов-o
означает «ИЛИ»
Рекомендуется заключать расширения файлов в скобки, а также использовать символ \
(обратный слэш), как в команде.
Пример 2: Поиск файлов .sh, .txt и .c
Чтобы найти три файла с расширениями .sh, .txt и .c, выполните следующую команду:
find . -type f \( -name "*.sh" -o -name "*.txt" -o -name "*.c" \)

Пример 3: Поиск файлов .png, .jpg, .deb и .pdf
Вот еще один пример, в котором мы ищем файлы с расширениями .png, .jpg, .deb и .pdf:
find /home/aaronkilik/Documents/ -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.deb" -o -name ".pdf" \)

Пример 4: Использование подстановочных знаков для поиска
Вы также можете использовать подстановочные знаки для поиска шаблонов. Например, чтобы найти все файлы с расширениями .log, .txt или .cfg:
find /var/log/ -type f \( -name "*.log" -o -name "*.txt" -o -name "*.cfg" \)
Пример 5: Поиск файлов со сложными шаблонами
Предположим, вам нужно найти файлы, которые заканчиваются на .tar.gz или .zip:
find /path/to/search/ -type f \( -name "*.tar.gz" -o -name "*.zip" \)
Если проанализировать все приведенные выше команды, то небольшая хитрость заключается в использовании опции -o
в команде find, которая позволяет добавить больше имен файлов в массив поиска, а также узнать имена или расширения файлов, которые вы ищете.
Заключение
В этом руководстве мы рассмотрели, как использовать команду find для поиска файлов с несколькими расширениями. Используя опцию -name
в сочетании с оператором -o
, вы можете легко находить файлы, соответствующие различным шаблонам, с помощью одной команды.
Чтобы глубже изучить команду find и ее многочисленные возможности, вы можете обратиться к странице руководства find, набрав man find
в терминале.
man find
Комментарии (0)