Como posso procurar recursivamente por nomes de diretório com uma sequência específica, na qual a sequência é apenas parte do nome do diretório

73

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

Por exemplo: o nome do diretório é "8.0.3-99966_en", mas desejo procurar recursivamente por diretórios com a sequência "99966".

Bob Perez
fonte

Respostas:

95

Você pode usar o findcomando:

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

Exemplo:

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

deve encontrar todos os diretórios ( -type d) iniciando no diretório inicial ( ~) com nomes contendo a sequência "99966" ( -name "*99966*") e exibindo- os ( -print).

lgarzo
fonte
Como posso excluir um determinado diretório da pesquisa? Preciso pesquisar / mas recebo vários resultados / proc dos quais não me importo.
Kozuch
@Kuzuch (depois de um tempo!): Você pode usar grep negativo, direcionando a pesquisa sinf para um elogio como: find <whatever> | grep -v "/ proc", que filtrará todas as linhas que contêm a string de pesquisa.
Juan Lanus
19

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

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

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

Dan Fletcher
fonte
funciona para mim :) ~
smatthewenglish 23/09
9

Você pode canalizar a saída para greptê-lo destacar o nome do diretório
Algo como

find / -type d | grep "directory name"

O /indica para pesquisar em todo o computador

Collin
fonte
@ Zanna você está certo, eu editei a resposta. Obrigado por apontar isso
Collin
3

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

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

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

belacqua
fonte