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".

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).


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


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


@ 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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.