ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

Часто мы оказываемся в ситуации, когда нам нужно искать несколько файлов с разными расширениями, что является обычным сценарием для многих пользователей Linux, особенно при работе в терминале.

Существует несколько утилит Linux, которые мы можем использовать для поиска файлов в файловой системе, но поиск файлов с несколькими расширениями иногда может оказаться сложным и требует специальных команд.

Одной из многих утилит для поиска файлов в файловой системе Linux является утилита поиска. В этом практическом руководстве мы рассмотрим несколько примеров использования find, которые помогут нам найти несколько имен файлов одновременно.

Прежде чем мы углубимся в собственно команды, давайте рассмотрим краткое введение в утилиту “find” Linux.

 

Введение в команду find

Команда find – это универсальный инструмент, используемый для поиска файлов и каталогов в файловой системе Linux.

Самый простой и наиболее общий синтаксис утилиты поиска выглядит следующим образом:
find directory options [expression]

 

Вот краткий обзор его компонентов:

 

Давайте перейдем к рассмотрению некоторых примеров команды find в Linux.

 

Поиск нескольких расширений файлов

Чтобы найти файлы с разными расширениями, вы можете использовать опцию -name в сочетании с оператором -o (OR), который позволяет вам указать несколько шаблонов для соответствия различным типам файлов.

Давайте рассмотрим несколько примеров, чтобы проиллюстрировать, как это работает.

 

Пример 1: Поиск файлов .sh и .txt

Предполагая, что вы хотите найти все файлы в текущем каталоге с расширениями файлов .sh и .txt, вы можете сделать это, выполнив приведенную ниже команду:

find . -type f \( -name "*.sh" -o -name "*.txt" \)

 

destroyer@andreyex ~$ -/bin s find . -type f \( -name "*.sh" -o -name "*.txt" \)
/examples.txt
/script.sh 
./test.sh 
/list.txt 
destroyer@andreyex ~/bin

 

Интерпретация приведенной выше команды:

 

Рекомендуется заключать расширения файлов в квадратные скобки, а также использовать \ ( косую черту), как в команде.

 

Пример 2: поиск файлов .sh, .txt и .c

Чтобы найти три имени файлов с расширениями .sh.txt и .c, выполните команду ниже:

find . -type f \( -name "*.sh" -o -name "*.txt" -o -name "*.c" \)

 

destroyer@andreyex ~$ -/bin s find . -type f \( -name "*.sh" -o -name "*.txt" -o -name "*.c" \)
/examples.txt
script.sh
./test.sh
./list.txt
./file.c
./header. c
lost.c
destroyergandreyex -/bin s

 

Пример 3: поиск файлов .png, .jpg, .deb и .pdf

Вот еще один пример, где мы ищем файлы с расширениями .png.jpg.deb и .pdf:

find /home/destroyer/Documents/ -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.deb" -o -name ".pdf" \)

 

destroyer@andreyex ~$ find /home/destroyer/Documents/ -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.deb" -o -name ".pdf" \)
/home/destroyer/Documents/festival56.jpg
/home/destroyer/Documents/false.jpg
/home/destroyer/Documents/monitor.jpg
/home/destroyer/Documents/DIMS. jpg
/home/destroyer/Documents/mylife.jpg 
/home/destroyer/Documents/cabling.png 


Пример 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 и ее многочисленные возможности, вы можете обратиться к странице руководства по поиску, набрав man find в вашем терминале.

Exit mobile version