Как искать файлы по имени или расширению с помощью команды find

Много раз мы сталкиваемся с необходимостью поиска нескольких файлов с разными расширениями, что является обычным сценарием для многих пользователей 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
Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)