Procura com “grep” para os nomes das pastas

2

Ao usar o grep, você pode procurar por um regex específico, mas somente dentro de um arquivo. Existe alguma maneira, eu posso procurar por um nome de pasta?

    
por studiohack 05.04.2011 / 21:29

4 respostas

8

Eu costumo usar find:

$ find . -name 'FolderBasename*' -type d

ou para consultas mais complexas

$ find . -regex '{FolderRegex}' -type d

Como apontado nos comentários, se você quiser pesquisas que não diferenciam maiúsculas de minúsculas, faça -iname e -iregex

    
por 05.04.2011 / 21:30
6

Se você realmente quer dizer "regexp" ao invés de "shellglob", você pode querer usar

find <path> -regex '<regex>' -type d

por exemplo,

find Code/ -E -regex '(bin|redblack)_tree\.hs' -type d

a opção -E ativa a regexp estendida, veja man find para mais.

    
por 05.04.2011 / 21:38
0

Se você está apenas preocupado com a correspondência do nome, você pode simplesmente usar ' -name ' em encontrar.

find <path> -name '<regex>' -type d
    
por 05.04.2011 / 23:23
-1

encontrar é muito melhor, mas uma resposta desajeitada à sua pergunta:

ls -l | grep '^d'
    
por 05.04.2011 / 21:37