Я хочу найти все файлы с расширением .sql в папках и подпапках (рекурсивно).
Как я могу это сделать?
Или...
find $directory_name -name \*.sql
Например
find / -name \*.sql
Или
find ~ \*.sql
(где ~ равно / home / your_username /) или ...
find /usr/local/share/ \*.sql
и так далее.
Запустите это в командной строке:
cd / && find | grep '\.sql$'
Измените '/' на каталог, который вы хотите найти.
Команда find
способна выполнить задачу без grep (используя дополнительные параметры), но я считаю, что приведенное выше использование более удобно.
По порядку вышеприведенная команда:
cd /
)find
)| grep '\.sql$'
)
find
уже имеет возможности фильтраЯ знаю, что это старый пост, но я довольно нов в этом, и я нашел простой способ найти все файлы определенного расширения в каталоге и его дочерних подкаталогах. Ну, сначала вы перейдете к
parent Directory
тому,find . -name '*.sql'
и тогда вы найдете все файлы с расширением .sql в каталогах и их подкаталогах.В моем случае я хотел удалить все XML- файлы в каталоге и его подкаталогах, так что я сделал больше, что я добавил удалить, как здесь
find . -name '*.xml' | xargs rm
Надеюсь, это поможет кому-то :)
источник
find
понимает-delete
команду. Не нужно привлекатьrm
. Или вы можете использовать-exec
команду, чтобы вызвать ее напрямую, без обхода через канал иxargs
.Если он не установлен, предварительно установите его с помощью:
источник
mlocate.db
экземпляр, который не настроен из коробки в Ubuntu (я полагаю). Кроме того, почему бы не простоlocate '/folder/path/*.sql'
?locate
есть несколько другие настройки, чем в регулярном выраженииegrep
locate
Соответствует глобальным выражениям, таким как/folder/path/*.sql
регулярные выражения.man locate
я понял,-r, --regexp REGEXP - Search for a basic regexp REGEXP
что предположил, что это регулярное выражение. Во всяком случае, я попробовал ваше «глобальное выражение», но не работает, извините--regex
не указано, тоPATTERN
s может содержать символы-заглушки». ( Источник )