Desejo procurar todos os arquivos com a extensão .sql em pastas e subpastas (recursivas).
Como posso fazer isso?
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 filtroSei 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ãofind . -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 aqui
find . -name '*.xml' | xargs rm
Espero que isso ajude alguém :)
fonte
find
entende o-delete
comando. Não há necessidade de envolverrm
. Ou você pode usar o-exec
comando para invocá-lo diretamente sem o desvio através de um cano exargs
.Se não estiver instalado, instale-o anteriormente com:
fonte
mlocate.db
instância atualizada que não esteja configurada pronta para uso no Ubuntu (eu blieve). Além disso, por que não simplesmentelocate '/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 )