Respostas:
Ou...
find $directory_name -name \*.sql
Por exemplo
find / -name \*.sql
Ou
find ~ \*.sql
(onde ~ equivale a / home / your_username /) ou ...
find /usr/local/share/ \*.sql
e assim por diante.
Execute isso na linha de comando:
cd / && find | grep '\.sql$'
Mude '/' para o diretório que você deseja pesquisar.
O find
comando é capaz de realizar a tarefa sem grep (usando opções extras), mas acho o uso acima mais conveniente.
Em ordem, o comando acima:
cd /
)find
)| grep '\.sql$'
)find
já possui recursos de filtro
Sei que este é um post antigo, mas sou muito novo nisso e encontrei uma maneira fácil de encontrar todos os arquivos de uma certa extensão em um diretório e seus subdiretórios filhos. Bem, você primeiro navega para o parent Directory
então find . -name '*.sql'
e encontrará todos os arquivos com extensão .sql nos diretórios e seus subdiretórios.
No meu caso, eu queria excluir todos os arquivos .xml no diretório e seus subdiretórios, então o que fiz mais foi adicionar o remove como aquifind . -name '*.xml' | xargs rm
Espero que isso ajude alguém :)
find
entende o -delete
comando. Não há necessidade de envolver rm
. Ou você pode usar o -exec
comando para invocá-lo diretamente sem o desvio através de um cano e xargs
.
locate -br \\.sql$ | egrep '^/folder/path/'
Se não estiver instalado, instale-o anteriormente com:
sudo apt install mlocate
mlocate.db
instância atualizada que não esteja configurada pronta para uso no Ubuntu (eu blieve). Além disso, por que não simplesmente locate '/folder/path/*.sql'
?
locate
tem alguma configuração diferente de regex usado emegrep
locate
corresponde a expressões globais como /folder/path/*.sql
, e não expressões regulares.
man locate
que entendi -r, --regexp REGEXP - Search for a basic regexp REGEXP
, assumi que era uma regex. De qualquer forma eu tentei a sua "expressão global", mas não funciona, me desculpe
--regex
não for especificado, PATTERN
s podem conter caracteres brilhantes.” ( Fonte )