Estou no Ubuntu e gostaria de encontrar todos os arquivos no diretório e subdiretórios atuais cujo nome contém a string "John". Sei que grep
pode corresponder ao conteúdo dos arquivos, mas não tenho ideia de como usá-lo com nomes de arquivo. Qualquer ajuda seria apreciada.
107
Respostas:
Use o comando find ,
fonte
#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; fi
deixaria você funcionarF search-string
como um atalho perfeito[ -z "$1" ]
seria um pouco melhor.if [ -z ]
. Achei que seria um erro de sintaxe, mas funciona. Posso simplificar parte do meu código de agora em diante.Uma resposta correta já foi fornecida, mas para você aprender como se ajudar, pensei em acrescentar algo útil de uma maneira diferente; se você puder resumir o que está tentando alcançar em uma palavra, há um excelente recurso de ajuda no Linux.
O que isso faz é listar todos os comandos que têm o seu termo de pesquisa na breve descrição. Geralmente há uma boa chance de que você encontrar o que procura . ;)
Essa saída às vezes pode ser um tanto opressiva, e eu recomendo restringi-la aos executáveis, em vez de todas as páginas de manual disponíveis, como:
ou, se você também deseja procurar comandos que requerem níveis de privilégio mais altos, como este:
fonte
O
find
comando vai demorar muito porque verifica arquivos reais no sistema de arquivos.A maneira mais rápida é usar o
locate
comando, que dará resultado imediatamente:Se o comando não for encontrado, você precisa instalar o
mlocate
pacote e executar oupdatedb
comando primeiro para preparar o banco de dados de pesquisa pela primeira vez.Mais detalhes aqui: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
fonte
usar ack é simples. apenas digite
ack <string to be searched>
fonte
Esta é uma solução muito simples usando o
tree
comando no diretório que você deseja pesquisar.-f
mostra o caminho completo do arquivo e|
é usado para canalizar a saída da árvoregrep
para encontrar o arquivo que contém a stringfilename
no nome.fonte