🐧 Как перечислить файлы с несколькими расширениями

Ка найти файлы с разными расширениями

by itisgood

Обзор

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

В этом руководстве мы рассмотрим различные способы создания списка файлов с несколькими расширениями в Linux.

Все приведенные ниже инструкции были протестированы на Ubuntu 20.04.6 LTS.

Использование команды ls

Команда ls перечисляет все файлы в каталоге.

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

🐧 Как найти файлы по имени без учета регистра на Linux

Давайте воспользуемся этой командой, чтобы перечислить файлы, заканчивающиеся на .txt или .csv:

$ ls *.{txt,csv}
checksums.txt  example2.csv  example3.txt  example5.csv
example1.csv   example2.txt  example4.csv  example5.txt
example1.txt   example3.csv  example4.txt

Таким образом, используя скобки и подстановочные знаки в команде ls, мы можем вывести список файлов с несколькими расширениями одновременно.

Использование команды find с параметрами -iname и -or

Утилита find в Linux определяет местоположение файлов по их именам.

Использование команды find с опцией -iname гарантирует, что утилита выполнит поиск по имени без учета регистра.

В частности, заглавная и строчная форма символа в имени файла будет считаться эквивалентной для целей поиска.

🐧 Удаление пустых каталогов в командной строке с помощью Find

Параметр -or – это логический оператор, который указывает команде find рассматривать расширения файлов, соответствующие либо предыдущему, либо последующему условию.

В приведенном ниже примере команда find с параметрами -iname и -or используется для перечисления файлов, заканчивающихся на .txt или .csv, в текущем каталоге:

$ find -iname '*.txt' -or -iname '*.csv'
./example3.txt
./example1.csv
./case1.TXT
./example2.txt
./example5.csv
./example1.txt
./example3.csv
./example2.csv
./case1.CSV
./example5.txt
./checksums.txt
./case2.CSV
./example4.csv
./example4.txt
./case2.TXT

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

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

Использование команды find с регулярными выражениями

Утилита find использует регулярные выражения (regex) для поиска определенных шаблонов файлов.

Давайте воспользуемся командой find с regex, чтобы перечислить файлы, заканчивающиеся на .txt или .csv, в текущем каталоге:

$ find . -iregex '.*\.\(csv\|txt\)' -printf '%f\n'
example3.txt
example1.csv
case1.TXT
example2.txt
example5.csv
example1.txt
example3.csv
example2.csv
case1.CSV
example5.txt
checksums.txt
case2.CSV
example4.csv
example4.txt
case2.TXT

Вот краткое описание этой команды.

Сначала мы используем команду find для поиска файлов в текущем каталоге:

find .

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

-iregex '.*\.\(csv\|txt\)'

Наконец, мы настраиваем вывод так, чтобы в нем отображалось только имя файла без путей, что делает его легко читаемым:

-printf '%f\n'

Поэтому использование регулярных выражений в команде find очень эффективно и точно для перечисления нескольких файлов с разными расширениями.

Заключение

В этой статье мы узнали, как выводить список файлов с несколькими расширениями с помощью команд ls и find.

С помощью этих команд мы можем перемещаться по файловой системе Linux и находить нужные нам файлы по их расширениям.

см. также:

 

 

You may also like

Leave a Comment