Como encontrar todos os nomes de arquivos com uma determinada extensão

8

Eu preciso encontrar todos os arquivos .pem no meu sistema. O seguinte faria isso?

sudo find / -type f -name *.pem

Se não, como eu escreveria um comando find para encontrar todos os arquivos do tipo?

    
por David542 24.05.2012 / 22:33

5 respostas

16

Você está no caminho certo - você só precisa citar o padrão para que ele seja interpretado por find e não pelo seu shell:

sudo find / -type f -name '*.pem'
    
por 24.05.2012 / 22:35
3

Usar find / normalmente será muito lento. Usar locate é muito mais rápido, mas um pouco impreciso, porque não suporta nada mais complexo que a correspondência de substring. Um diretório chamado .pembroke será encontrado e retornado pelo locate junto com todos os arquivos dentro dele.

Uma combinação de locate e grep , no entanto, tem velocidade e precisão. Convenientemente, também não requer sudo .

locate .pem | grep "\.pem$"

O lado negativo? O banco de dados locate usa normalmente é atualizado apenas uma vez por dia, portanto, quaisquer alterações recentes (adições, exclusões, alterações de nome, etc.) não serão encontradas.

    
por 24.05.2012 / 23:57
1

Quase!

sudo find / -type f -name \*.pem

ou

sudo find / -type f -name "*.pem"

caso contrário, o shell interpretará o * em vez de localizar.

    
por 24.05.2012 / 22:38
1

... ou se mlocate é executado em seu computador e você não precisa dos dados mais reais use o comando locate

locate *.pam

É mais rápido porque encontra arquivos no banco de dados criado anteriormente; não no sistema inteiro.

    
por 24.05.2012 / 22:53
0
sudo find / | grep .pam

Acho que isso deve funcionar.

    
por 25.05.2012 / 18:12

Tags