Como encontrar arquivos no Linux?

Publicados: 2022-04-07

Índice

Introdução:

Find é um utilitário de linha de comando UNIX que percorre uma hierarquia de arquivos. Você pode usá-lo para localizar e operar em arquivos e diretórios. Arquivos, pastas, nomes, datas de criação, datas de modificação, proprietários e permissões podem ser pesquisados ​​usando este comando.

Você pode combiná-lo ainda mais com a opção ' exec ' para executar várias ações nos resultados encontrados pelo comando find .

Neste artigo vamos aprender como encontrar arquivos no linux usando o comando Find .

Como o comando Localizar funciona?

Find localiza arquivos em seu computador. De acordo com as regras de precedência, ele avalia cada expressão, da esquerda para a direita, dentro de cada árvore de diretórios especificada pelos caminhos fornecidos. Em operações AND, ou em operações OR, o resultado é “conhecido” quando o lado esquerdo da expressão é TRUE ou FALSE. Find então segue para o próximo caminho até que todos os caminhos tenham sido explorados.

O comando find é a ferramenta mais fundamental e poderosa para trabalhar com arquivos em um sistema Linux. Os arquivos podem ser localizados sozinhos ou em conjunto com outros programas.

Sintaxe:

find [options] [path…] [expression]

ou

$ find [where to start searching from]

[expressão determina o que encontrar] [-options] [o que encontrar]

  • O tratamento do link simbólico, as opções de depuração e a estratégia de otimização são todos controlados pela propriedade options .
  • A propriedade path … especifica o diretório ou diretórios dos quais find procurará os arquivos.
  • Opções, padrões de pesquisa e ações são separados por operadores no atributo de expressão .

Opções:

-exec CMD : O arquivo pesquisado que atende aos critérios acima e retorna 0 para um status de saída de execução de comando bem-sucedido.

-ok CMD : Semelhante a -exec, mas o usuário é avisado com antecedência.

-inum N : Procure arquivos com o número 'N' no inode.

-links N : Localiza arquivos que possuem 'N' links.

-name demo : Procure arquivos com o nome 'demo' no nome do arquivo.

-newer file : procura por arquivos que foram atualizados ou criados desde 'arquivo'.

-perm octa l: Se a permissão for 'octal', procure o arquivo.

-print : Imprime os nomes de caminho dos arquivos identificados usando os critérios restantes.

-empty : Procure arquivos e pastas que estejam vazios.

-size +N/-N : Procura arquivos com 'N' blocos; 'N' seguido de 'c' pode ser usado para medir o tamanho do caractere; '+N' denota tamanho > 'N' blocos, enquanto '-N' significa tamanho 'N' blocos.

-user name : Procure arquivos com o nome de usuário 'name' ou o ID 'name'.

(expr) : Se 'expr' for true, então true; utilizado para agrupar critérios com OR ou AND.

! expr : Verdadeiro se 'expr' for falso.

Expressões:

As opções (que afetam a operação geral em vez do processamento do arquivo e sempre retornam verdadeiro), testes (que retornam um valor verdadeiro ou falso) e ações (que têm efeitos colaterais e retornam um valor verdadeiro ou falso) são todas separadas por operadores na expressão . Quando o operador está ausente, -e é inferido.

Se a expressão não contiver ações adicionais, -prune, -print será aplicado a todos os arquivos para os quais for verdadeira.

Por exemplo, vamos ver o seguinte comando como um exemplo

find -L /var/www -name "*.js"

  • A opção -L (opções) diz ao comando find para seguir links simbólicos.
  • O /var/www (caminho…) especifica o diretório que será pesquisado.
  • A (expressão) -name "*.js diz ao find para pesquisar arquivos que terminam com .js (arquivos JavaScript).

Como encontrar arquivos no linux pelo nome

Os arquivos podem ser encontrados por nome usando o comando find . Você pode pesquisar um arquivo por seu nome usando a opção -name.

find -type f -name functions.php

Como encontrar arquivos no Linux

use -iname em vez de -name, para executar uma pesquisa com distinção entre maiúsculas e minúsculas

Como encontrar arquivos no linux por extensão

Você pode pesquisar arquivos por extensão, assim como pode pesquisar arquivos por nome.

find -type f -name '*.php'

para encontrar arquivos sem a extensão fornecida, use o seguinte comando

find -type f - not -name '*.php'

Localizar arquivos por tipo

Se você precisar encontrar um tipo de arquivo específico, como um arquivo normal, um diretório ou um link simbólico, talvez seja necessário pesquisar por tipos de arquivo específicos. Tudo no Linux é um arquivo.

Especifique o tipo de arquivo que você está procurando usando a opção -type e um dos seguintes descritores:

  • f: um arquivo normal
  • d: diretório
  • l: link simbólico
  • c: dispositivos de caracteres
  • b: dispositivos de bloqueio
  • p: pipe nomeado (FIFO)
  • s: soquete

find public_html/wp-admin/ -type d

Localizar arquivos por tamanho

O parâmetro -size deve ser passado junto com o parâmetro size para localizar arquivos com base em seu tamanho. Os seguintes sufixos podem ser usados ​​para especificar o tamanho do arquivo:

  • b: blocos de 512 bytes (padrão)
  • c: bytes
  • w: palavras de dois bytes
  • k: kilobytes
  • M: Megabytes
  • G: Gigabytes

find . -type f -size -1M

Se você deseja pesquisar arquivos com tamanho superior a 1 MB, use +

find . -type f -size +1M

Você pode até pesquisar arquivos dentro de um intervalo de tamanho

find . -type f -size +1M -size 3M

Encontrar arquivos por modificação

O comando find também pode ser usado para procurar arquivos com base em quando eles foram modificados, acessados ​​ou alterados pela última vez.

Use os caracteres de mais e menos para "mais que" e "menos que", exatamente como faria ao pesquisar por tamanho.

find . -mtime +30 -daystart

Localizar com permissão

Você pode usar a opção -perm para pesquisar arquivos com base em suas permissões.

find public_html/wp-admin/css -perm /444

/ é usado como o prefixo, então pelo menos na categoria deve ter pelo menos o respectivo bit definido para que um arquivo corresponda.

-prefix, então pelo menos os bits especificados devem ser definidos.

Encontrar pelo proprietário

Use os parâmetros -user e -group para localizar arquivos pertencentes a um determinado usuário ou grupo.

find -user testc7963

Conclusão

Demonstramos como aplicar o comando find com uma variedade de critérios e argumentos.
Este artigo deve fornecer uma compreensão básica de como localizar arquivos em computadores Linux.