Como encontrar todos os arquivos com a mesma extensão em um diretório

63

Eu sou iniciante no Linux e quero procurar todos os .confarquivos no /etc/.

Eu tentei grep -r *.conf /etc, mas o resultado não está certo.

O que estou fazendo errado?

Adrian George
fonte

Respostas:

96

Basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o comando abaixo:

find . -type f -name "*.txt"

Isso listará todos os arquivos com a extensão .txt.

O .no início indica o diretório atual. findpesquisa recursivamente em todos os diretórios abaixo do caminho especificado. Se você deseja que a pesquisa inicie em algum lugar que não seja o diretório de trabalho atual, especifique o caminho, por exemplo:

find /etc -type f -name "*.conf"

Isso procura no /etcdiretório e em todos os seus subdiretórios arquivos regulares com a .confextensão.

Mitch
fonte
1
Funciona. Existem alternativas para esse comando?
Adrian George
1
Você pode dar uma olhada em Localize .
Mitch
O @AdrianGeorge findé tão amplamente usado, tão bem documentado e tem tantas postagens do StackOverflow / Exchange sobre ele que seria mais difícil encontrar algo mais fácil de trabalhar. Quase tudo o que você gostaria de fazer foi escrito online em algum lugar.
BallpointBen
6

Eu pessoalmente usaria find, mas você também pode usar essas coisas:

shopt -s globstar
ls /etc/{,**/}*.conf

E você pode usar o find e é rápido, mas não confiável.

locate '/etc/**.conf'
Oli
fonte
Por que não é locateconfiável?
Giraldi
1
O @Giraldi locateconta com o banco de dados mlocate para ter sido atualizado recentemente para ser preciso. Por padrão, está programado apenas para atualizar uma vez por dia (embora você possa forçá-lo manualmente updatedb).
Oli
@ Oli não é verdade em macs, certo? acho que o Mac OS mantém o mlocate atualizado
d8aninja 21/02
6

greppesquisa o conteúdo dos arquivos, não os nomes dos arquivos.

Para encontrar todos os .confarquivos, /etc/você precisará encontrar:

find /etc -name "*.conf"
user184890
fonte