примеры - linux поиск файла рекурсивно




Как я могу рекурсивно найти все файлы в текущих и подпапках на основе подстановочных знаков? (8)

Как я могу рекурсивно найти все файлы в текущих и подпапках на основе подстановочных знаков?


fd

В случае, если find слишком медленный, попробуйте утилиту fd - простую и быструю альтернативу find написанного в Rust.

Синтаксис:

fd PATTERN

Демо-версия:

Домашняя страница: fd


Если ваша оболочка поддерживает новую функцию shopt -s globstar (может быть включена: shopt -s globstar ), вы можете использовать:

echo **/*foo*

для поиска любых файлов или папок рекурсивно. Это поддерживается Bash 4, zsh и аналогичными оболочками.

Лично я получил эту функцию оболочки:

f() { find . -name "*$1*"; }

Примечание. Выше строка может быть вставлена ​​непосредственно в оболочку или добавлена ​​в файл ~/.bashrc вашего пользователя.

Затем я могу искать любые файлы, набрав:

f some_name

В качестве альтернативы вы можете использовать утилиту fd с простым синтаксисом, например, fd pattern .


Используйте для этого find :

find . -name "foo*"

find нужна начальная точка, а . (точка) указывает на текущий каталог.


Ниже команда помогает искать любые файлы

1) Независимо от случая
2) Результат Исключая папки без разрешения
3) Поиск из корня или из нужного вам пути. Измените / с помощью пути, который вы предпочитаете.

Синтаксис:
find -iname '' 2> & 1 | grep -v "Разрешение отклонено"

пример

find / -iname 'C * .xml' 2> & 1 | grep -v "Разрешение отклонено"

find / -iname '*C*.xml'   2>&1 | grep -v "Permission denied"

Трубопроводы в grep часто более удобны; он дает вам полную силу регулярных выражений для произвольного сопоставления подстановочных знаков.

Например, чтобы найти все файлы с регистрозависимой строкой «foo» в имени файла:

~$ find . -print | grep -i foo

Ты можешь использовать:

# find . -type f  -name 'text_for_search'

Если вы хотите использовать использование -iname

# find . -type f  -iname 'text_for_search'

find найдет все файлы, которые соответствуют шаблону:

find . -name "*foo"

Однако, если вы хотите изображение:

tree -P "*foo"

Надеюсь это поможет!


find <directory_path>  -type f -name "<wildcard-match>"

В подстановочном матче вы можете указать строку, которую вы хотите сопоставить, например, * .c (для всех файлов c)





shell