Como posso usar o comando find com mais eficiência?

15

Eu queria saber qual é a melhor maneira de usar o comando find com eficiência?

Eu geralmente uso, o find [filename] [dir]que me fornece uma longa lista de nomes de arquivos, nenhum deles relacionado à minha pesquisa.

Eu simplesmente preciso encontrar um arquivo em um diretório específico. Qual é o comando para isso?

Sam007
fonte

Respostas:

24

você geralmente diz para descobrir por onde começar a pesquisa e o que procurar. Portanto, a sintaxe dos caminhos a serem pesquisados ​​e o que você está realmente tentando encontrar são diferentes.

Para o caso de uso que você mencionou, vamos supor que você queira encontrar o passwdarquivo em /etc:

find /etc/ -name passwd

você está dizendo "começando em etc, procure um arquivo cujo nome sejapasswd

se você não especificar critérios (ou "opções" na linguagem de localização), o que a descoberta faz é que ela inicia no (s) caminho (s) especificado (s) e encontra todos os arquivos e diretórios abaixo, recursivamente. Portanto, as opções "filtram" esses arquivos para restringir o que você está procurando.

Encontre todos os arquivos JPG em qualquer lugar do seu sistema de arquivos:

find / -name "*jpg" 

Recomenda-se o uso de aspas nas suas opções, porque, caso contrário, a expansão do shell poderá causar dores de cabeça.

Encontre qualquer arquivo pdf, independentemente do caso, em Documentos ou Downloads:

find Documents/ Downloads/ -iname "*pdf"

Se você fizer isso man finde rolar para baixo até TESTES, encontrará todos os "critérios" encontrados para restringir sua pesquisa. Você pode procurar arquivos com nomes de arquivos específicos, pertencentes a usuários ou grupos específicos, possuindo uma permissão de arquivo específica, sendo de um tipo específico (por exemplo -type d, encontrará apenas diretórios, enquanto -type fencontrará apenas arquivos simples, excluindo diretórios), arquivos mais novos ou mais antigos que um número específico de dias (ou minutos), arquivos vazios, executáveis ​​e assim por diante.

Na página de manual do find, você também encontrará uma seção chamada ACTIONS, que pode seguir os critérios e será acionada por qualquer arquivo que corresponda a todos os critérios. Assim, você pode findexecutar ações como excluir arquivos encontrados, executar comandos arbitrários neles e assim por diante.

Mas é claro que a sintaxe básica permanece:

find [starting path(s)] [conditions or criteria]
roadmr
fonte
graças isso funciona muito bem. Eu estava realmente confuso e isso ajuda as coisas série direta
Sam007
11
+1 Esta é uma boa introdução para encontrar e também ensina o OP a encontrar mais informações.
Lgarzo 19/06