Рекурсивный перебор файлов в каталоге в Bash

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

Рекурсивный перебор файлов в каталоге в Bash

Find - одна из лучших команд для поиска файлов, удовлетворяющих определенным критериям. Вот команда для поиска всех файлов в текущем рабочем каталоге.

В приведенной выше команде мы используем точку(.), чтобы указать, что мы хотим найти файлы в текущем рабочем каталоге. Вы можете указать другой каталог, если хотите искать в другой папке.

Мы также используем -type f, чтобы указать, что мы хотим искать только файлы, а не папки.

Приведенная выше команда выведет список всех относительных путей к файлам. Мы используем вывод вышеприведенной команды в цикле for для перебора этих файлов и работы с ними. В следующем коде вы можете заполнить часть между do...done кодом для работы с файлами. Мы используем опцию -print0 для отображения всех имен файлов, даже если они включают пробелы и другие специальные символы. Если вы используете только опцию -print, она не будет работать с файлами, содержащими пробелы и специальные символы.

Если вы хотите найти файлы определенного типа, например, pdf, вы можете использовать опцию -name в команде find, как показано ниже. Для опции name можно указать форматы имен расширений файлов, используя символы подстановки.

Аналогично, вот пример для поиска файлов в форматах pdf и .doc в вашей папке.

Вы можете выполнить приведенную выше команду непосредственно в терминале или добавить ее как часть сценария оболочки.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий