É possível usar o grep simplesmente para localizar arquivos em uma estrutura de diretórios?

4

Eu gosto de usar o grep, mas às vezes eu só quero procurar os nomes dos arquivos em uma árvore de diretórios, mas não quero que o grep abra os arquivos e pesquise dentro deles. O grep pode fazer isso?

    
por SlyMcFly 05.11.2011 / 21:11

4 respostas

5

Existem muitas respostas para esta questão, mas a resposta unix tradicional mais 'correta' é usar find (1):

find / -type f -name foo\*

encontrará todos os arquivos no diretório atual com um nome que comece com foo

    
por 05.11.2011 / 21:23
1

Tente uma expressão regular, como

ls -R |grep ^a

Isso listará todos os arquivos e subdiretórios e filtrará os nomes que começam com a.

Isso não inclui um caminho.

    
por 05.11.2011 / 21:20
1

Existem muitas maneiras de encontrar arquivos no linux. Melhor na minha opinião são dois. Encontrar e localizar ' encontrar ' é muito mais poderoso do que localizar. O comando localizar tem uma limitação, que é a velocidade na qual ele fornece os resultados da sua pesquisa. Esse problema é resolvido pelo comando locate. que armazena uma árvore cache local do diretório inteiro (que é construído manualmente executando o comando UPDATEDB) e quando você deseja procurar um arquivo, simplesmente use "locate filename", e você obterá resultados instantaneamente. quando a velocidade é um problema, use locate, para qualquer outra coisa, use o comando find.

    
por 06.11.2011 / 22:28
1

você também pode usar o comando locate

então, primeiro você deve atualizar o Db do locate emitindo o comando updatedb (note que pode levar algum tempo para terminar)

do que executar

locate foo*

Você obterá o caminho completo para o arquivo

    
por 06.11.2011 / 13:04

Tags