Como encontrar arquivos em Linux usando a linha de comandos

find é um comando para filtrar recursivamente objetos no sistema de arquivos baseado em um simples mecanismo condicional. Use find para procurar um ficheiro ou directório no seu sistema de ficheiros. Usando a bandeira -exec, os arquivos podem ser encontrados e processados imediatamente dentro do mesmo comando.,

Find Linux Files by Name or Extension

Use find from the command line to locate a specific file by name or extension., O exemplo a seguir pesquisa *.err arquivos /home/username/ diretório e sub-diretórios:

find /home/username/ -name "*.err"

Você deve ver uma saída semelhante no seu console:

 /home/username/example.errThe matching file in the /home/username/ directory is "example.err"

Linux Comuns Encontrar Comandos e a Sintaxe

find comando geralmente assume a seguinte forma:

find options starting/path expression
  • options atributo controla o comportamento e método de otimização de find processo.,
  • o atributostarting/path define a pasta de topo ondefind começa a filtrar.
  • The expression attribute controls the tests that search the directory hierarchy to produce output.

encontre um ficheiro no Linux usando o nome do ficheiro

para encontrar um ficheiro usando o nome do ficheiro, use a sintaxe find -name filename. Omitir a localização procura pelo ficheiro em todo o disco., Por exemplo, você pode encontrar um arquivo chamado example.err localizado no /home/username diretório com o seguinte comando:

find -name example.err

Você deve ver uma saída semelhante:

 ./username/example.err

Encontre um Arquivo no Diretório Atual Usando o Comando Find

dê uma olhada no exemplo de estrutura de diretórios e arquivos. São referidos em todos os exemplos deste guia.,deseja localizar o arquivo example.err dentro do diretório ou qualquer um de seus subdiretórios, você pode emitir o seguinte comando:

find . -name example.err

a Sua saída é semelhante ao seguinte:

 ./example.err./directory_1/example.err

A saída reflete directory_1 estrutura de diretório:

 ├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err

Encontre Arquivos de Imagem em Linux, Usando a Linha de Comando

Referência a estrutura do arquivo na seção anterior, existe uma imagem com o nome image01.png que está localizado na raiz (/)s da estrutura de diretório.,

Para localizar o arquivo image01.png, execute o seguinte find comando que localiza todos os .png arquivos armazenados dentro de / diretório.

find -name *.png

Você deve ver uma saída semelhante:

 ./image01.png

Alterar o tipo de arquivo de imagem e procure por .jpg arquivos dentro do diretório raiz (/):

find -name *.jpg

A saída semelhante ao exemplo., Consulte a estrutura de pastas exemplo na secção anterior para ver a localização do ficheiro.

 ./web_files/unnamed.jpg

Encontre um Arquivo Vazio no Seu Diretório Usando a Linha de Comando

Para encontrar um arquivo vazio no seu diretório utilizando a linha de comandos, emita o seguinte comando:

find . -type f -empty

Se nenhum resultado for retornado, então não há um arquivo vazio dentro do seu diretório atual.

opções e optimizações para encontrar ficheiros no Linux usando a linha de comandos

a configuração predefinida para find ligações ignoressymbolic., Se você quiser find a seguir e retornar as ligações simbólicas, adicione o -L opção para o comando, como mostrado abaixo:

find -O3 -L /var/www/ -name "*.html"

Este comando permite a otimização máxima (nível-O3) e permite que find para seguir links simbólicos (-L). find procura em toda a árvore de diretórios abaixo de /var/www/ para arquivos que terminam com .html.,

find optimiza a sua estratégia de filtragem para aumentar o desempenho. Três selecionáveis pelo usuário níveis de otimização são especificados como: -O1 -O2 e -O3. The -O1 optimization is the default and forces find to filter based on filename before running all other tests.,

Optimization at the -O2 level priorize filename filters, as in-O1, and then run all file-type filtering before proceeding with other resource-intensive conditions. Level -O3 optimization allowsfind to perform the most severe optimization and reorders all tests based on their relative expense and the likely of their success.,

Command Description
-O1 Filter based on filename first (default).
-O2 File name first, then file-type.,
-O3 Permitir que o find automaticamente re-ordenar a pesquisa com base no uso eficiente de recursos e probabilidade. de sucesso
-maxdepth X Pesquisa do diretório atual, bem como todos os sub-diretórios X níveis de profundidade.
-iname Pesquisa sem considerar maiúsculas e minúsculas no texto.,
-not Return only results that do not match the test case.
-type f Search for files.
-type d Search for directories.,

Localizar Arquivos no Linux por Tempo de Modificação Usando a Linha de Comando

find comando pode filtrar uma hierarquia de diretórios de base, quando um arquivo foi modificado pela última vez., Por exemplo, o comando a seguir localiza qualquer arquivo com o .err extensão que foi modificado nos últimos 7 dias:

find / -name "*err" -mtime -7

O exemplo de comando retorna a seguinte saída:

Usar o Grep para Encontrar Arquivos no Linux Usando a Linha de Comando

find comando só é capaz de filtrar a hierarquia de diretório baseado no nome de um arquivo e metadados. Se você precisar pesquisar com base no conteúdo do arquivo, use uma ferramenta likegrep., Considere o exemplo a seguir:

find . -type f -exec grep "test" '{}' \; -print

Este comando procura cada objeto no diretório atual hierarquia (.) que é um arquivo (-type f) e, em seguida, executa o comando grep "test" para cada arquivo que satisfaz as condições. Os arquivos correspondentes são impressos na tela (-print). Os Chavetas ({}) são um substituto para os resultados de find match., {} são colocados entre aspas simples (') para evitar a entrega de grep um nome de arquivo malformado. -exec comando é terminada com um ponto-e-vírgula (;), que devem ser encerradas (\;) para evitar a interpretação do shell.

O arquivo usado no exemplo (example.err) tem texto dentro dele que diz “teste”., Quando executar o comando exemplo, verá um resultado semelhante:

Grep identificou todos os ficheiros dentro da pasta de trabalho actual que contém o texto “teste”.,

Nota

Antes de find comando de implementação de -exec opção, você pode gerar uma saída semelhante ao exemplo acima, usando o xargs comando:

find . -type f -print | xargs grep "test"

Processo e Localizar Arquivos Usando o Comando Localizar no Linux

-exec opção executa comandos em relação a cada objeto que corresponde ao find expressão., Considere o exemplo a seguir:

find . -name "example.err" -exec chmod o+r '{}' \;

Esta filtros de cada objeto na atual hierarquia (.) para arquivos com o nome rc.conf e executa o chmod o+r comando para modificar as permissões de arquivo de find comando de resultados.

o comando exemplo executa e executa a opção -exec na pasta raiz do processo find. Use -execdir para executar o comando indicado na pasta onde a correspondência reside., Isso pode aliviar as preocupações de segurança e produzir um melhor desempenho para algumas operações.

The -execor -execdir options run without further prompts. Se preferir ser solicitado antes da tomada de ação, substitua -exec com -ok ou -execdir com -okdir.

como encontrar e apagar ficheiros usando a linha de comandos do Linux

precaução

Use esta opção com extrema precaução.,

adicione a opção -delete ao fim de uma expressão de correspondência para remover todos os ficheiros correspondentes. Utilize esta opção quando tiver a certeza de que os resultados só correspondem aos ficheiros que deseja apagar.

No exemplo a seguir, find recursivamente localiza todos os arquivos na hierarquia, começando no diretório atual e exclui todos os arquivos que terminam com .err extensão:

find . -name "*.err" -delete

Ainda tenho algumas perguntas?,Junte-se à nossa comunidade e publique as suas perguntas para outros entusiastas do Linode e do Linux para o ajudar.
perguntas relacionadas:

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *