Como posso pesquisar recursivamente nomes de diretório com uma string específica onde a string é apenas parte do nome do diretório

53

Como posso recursivamente procurar por nomes de diretório com uma string específica, onde a string é apenas parte do nome do diretório?

Por exemplo: o nome do diretório é "8.0.3-99966_en", mas eu quero recursivamente procurar por diretórios com a seqüência de caracteres "99966".

    
por Bob Perez 19.06.2012 / 19:12

4 respostas

68

Você pode usar o comando find :

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

Exemplo:

find ~ -type d -name "*99966*" -print

deve encontrar todos os diretórios ( -type d ) a partir do seu diretório pessoal ( ~ ) que tem seus nomes contendo a string "99966" ( -name "*99966*" ) e os envia ( -print ).

    
por lgarzo 19.06.2012 / 19:18
13

Para evitar todos os resultados de "Permissão negada", você pode usar:

find / -type d -name "*99966*" -print 2>/dev/null

Veja este artigo no dispositivo nulo e este em fluxos padrão para mais informações.

    
por Dan Fletcher 11.02.2015 / 23:18
4

Você pode enviar a saída para grep para que ela realce o nome do diretório
Algo como

find / -type d | grep "directory name"

O / indica para pesquisar o computador inteiro

    
por Collin 26.12.2016 / 19:49
3

Uma maneira fácil de fazer isso é usar find | egrep string . Se houver muitos hits, use o sinalizador -type d para encontrar. Execute o comando no início da árvore de diretórios que você deseja pesquisar ou você terá que fornecer o diretório como um argumento para find também.

Outra maneira de fazer isso é usar ls -laR | egrep ^d .

E o comando locate também é útil: locate string

    
por belacqua 19.06.2012 / 19:32

Tags