Comando FIND do Linux com exemplos


Você sabe quantos arquivos existem em uma nova instalação do Linux? Se você usa o PopOS! Distribuição Linux por exemplo, existem mais de 31.000 arquivos. Isso antes de você começar a criar documentos, armazenar músicas, baixar PDFs ou organizar imagens.

Por causa disso, encontrar o arquivo ou pasta certa no Linux quando você precisar se torna um desafio. Neste artigo, você aprenderá como usar o comando FIND do Linux e daremos todos os exemplos que pudermos.

Sintaxe do comando FIND do Linux

Sintaxe refere-se a como as palavras ou comandos são reunidos. Assim como uma frase normal pode se tornar sem sentido apenas com o embaralhamento das palavras, os comandos podem falhar se não forem usados ​​na sintaxe correta.

encontrar [caminho] [condições] [ações]

Isso significa o seguinte:

find – inicia o utilitário Find no Linux

caminho – onde procurar

condições – argumentos que você deseja aplicar à pesquisa

ações – o que você deseja fazer com os resultados

Um exemplo simples usando todos os três é:

encontrar. -nome do arquivo-amostra.rtf -print

Como você adivinhou, isso encontrará o nome do arquivo file-sample.rtf .

O caminho do ponto final (. ) diz ao find para procurar no diretório atual e em quaisquer diretórios dentro dele.

A condição -name instrui find para obter o arquivo com esse nome específico.

A ação -print pede ao FIND para mostrar os resultados na tela.

O ponto final e -print são padrões para o comando find. Portanto, ainda fará a mesma coisa se você não os usar. Portanto, find -name file-sample.rtf fornecerá os mesmos resultados.

Linux ENCONTRE em outro diretório

Você pode pesquisar em um diretório diferente daquele em que está. Basta inserir o caminho do diretório após FIND. Se você estiver na raiz e souber que o arquivo está em algum lugar no diretório home/user você usaria:

encontrar home/nome do usuário arquivo-sample.rtf

Ainda é uma pesquisa recursiva, então ela percorrerá todos os diretórios em usuário ..

Linux FIND Pesquisa em vários diretórios

Se você quiser pesquisar em vários diretórios de uma vez, basta listá-los no comando, separados por um espaço.

encontre /lib /var /bin -nome do arquivo-sample.rtf

Linux FIND sem recursão ou limitando a recursão

Se você usasse o comando FIND acima no nível raiz, ele procuraria em todos os diretórios do sistema. Portanto, se você quiser manter apenas o diretório atual, use a opção -maxprofundidade . O número após -maxprofundidade indica a profundidade a percorrer antes de parar.

Usar -maxprofundidade 1 significa apenas este diretório.

encontrar -name arquivo-sample.rtf -maxprofundidade 1

Usar -maxprofundidade 2 ou um número maior significa ir muitos níveis mais fundo.

encontrar -maxprofundidade 5 -nome do arquivo-sample.rtf

Exemplo de caractere curinga Linux FIND

O comando FIND usa o asterisco (* ) como curinga. Use-o para qualquer parte do nome que você não tenha certeza. Pode ser usado mais de uma vez no nome. Sem o tipo de arquivo como parte do nome do arquivo, os resultados também incluirão diretórios correspondentes.

encontrar arquivo home/nome do usuário*amostra*

Exemplo de localização do Linux por tipo

Para pesquisar apenas um arquivo ou diretório, use a opção -type e o descritor apropriado. Existem alguns, mas os de arquivo e diretório são os mais comuns:

f – arquivo

d – diretório

b – bloquear dispositivo

c – dispositivo de caractere

l – link simbólico

s – soquete

encontrar home/usuário -nome do arquivo*amostra* -tipo d

Exemplo de Linux FIND sem distinção entre maiúsculas e minúsculas

Ao contrário do Windows, o Linux se preocupa se uma letra é maiúscula ou minúscula. Portanto, se você quiser pesquisar tanto File-Sample.rtf quanto file-sample.rtf, use a opção -iname .

encontrar home/usuário -iname File-Sample.rtf

Exemplo de vários arquivos do Linux FIND

Digamos que você queira encontrar as versões .rtf e .html de um arquivo. Isso pode ser feito em um comando usando o operador -o (ou). Em algumas distros, pode ser necessário colocar os nomes entre colchetes, como ( -name file-sample.rtf -o -name file-sample.html ) ..

encontrar home/usuário -nome do arquivo-sample.rtf -o -nome do arquivo-sample.html

Linux ENCONTRE arquivos que não correspondem a um nome

Talvez você saiba que existe a versão .html de um arquivo, mas não se houver outras. Você pode filtrar a versão .html da pesquisa usando a opção -not .

encontrar home/usuário -nome arquivo-amostra* -not -nome *.html

Linux FIND sem resultados de erros

No exemplo de localizar sem recursão, observe que ele listou todos os diretórios nos quais não foi possível pesquisar e o resultado correto. Isso é irritante. Vamos impedir que ele mostre todos os diretórios de “Permissão negada”. Combine-o com outro Comando do terminal Linux, grep. Você também pode usar Find com grep para encontre arquivos com palavras específicas neles.

find -maxprofundidade 5 -name file-sample.rtf 2>&1 | grep -v “Permissão negada”

Vamos analisar 2>&1 .

2 – representa stderr, que é a abreviação de saída de erros padrão.

1 – representa stdout, que é a abreviação de saída padrão

> – significa redirecionar qualquer saída que esteja à esquerda para qualquer que esteja à direita.

& – significa juntar.

Portanto, 2>&1 significa pegar os erros padrão e redirecioná-los, e então colocá-los juntos com a saída padrão em uma saída.

Agora vamos dar uma olhada em | grep -v “Permissão negada” .

| (chamado de pipe) – diz ao Linux para alimentar os resultados do que estiver à sua esquerda para o que estiver à sua direita. Ele está sendo enviado para o comando grep.

grep – é um utilitário de pesquisa de texto.

-v – diz ao grep para procurar por qualquer coisa que não corresponda ao texto à esquerda do -v. Neste caso, está dizendo ao grep para encontrar apenas qualquer coisa que não contenha o texto ou string “Permissão negada”. Portanto, o grep mostrará apenas os resultados que você está procurando e quaisquer erros que não correspondam a “Permissão negada”.

Linux FIND por exemplo de permissões

.

Para usar isso bem, você precisa de aprenda permissões do Linux.

Todos os arquivos de exemplo têm a permissão 664, exceto um com a permissão 775. Use a opção -perm para encontrá-lo.

encontrar documentos/ -name file-sample* -type f -perm 775

Exemplo de localização do Linux por tamanho

Encontrar arquivos por tamanho é útil para fazer com que arquivos enormes ocupem seu disco rígido. Use a opção -size, o tamanho desejado e um dos seguintes sufixos. Se nenhum sufixo for usado, o padrão de -size é b . Para encontrar arquivos iguais e maiores que um determinado tamanho, coloque o sinal de mais (+) na frente do tamanho.

M – Megabytes

G – Gigabytes

k – Kilobytes

b – blocos (512 bytes – padrão)

c – bytes

w – palavras (dois bytes juntos)

encontre -tamanho +500k

Linux FIND pelo proprietário

Existem duas maneiras de localizar arquivos por proprietário. Um é pelo nome de usuário do proprietário e o outro é pelo grupo do usuário. Para encontrar por nome de usuário, use a opção -user , seguida do nome de usuário. Para encontrar por grupo de usuários, use -group seguido do nome do grupo..

find -user nome do grupo ou find -user nome de usuário

Linux FIND arquivos por exemplo da última modificação

Para encontrar arquivos que foram modificados ou editados nos últimos X dias, use -mtime seguido de um número. Colocar um sinal de menos ( ) na frente do número encontrará qualquer coisa alterada nos últimos dias. Um sinal de mais (+ ) significa muitos dias antes de agora.

find -name “file-sample*” -mtime +5 (mais de 5 dias atrás)

find -name “file-sample*” -mtime -5 (menos de 5 dias atrás)

Para encontrar a última modificação em minutos, use a opção -mmin seguida do número de minutos. Use + e – como acima.

find -name “arquivo-amostra*” -mmin -5

find -name “arquivo-amostra*” -mmin +5

Linux FIND arquivos por exemplo de horário do último acesso

.

A opção usada para localizar arquivos com base na data em que foram abertos pela última vez é -atime para dias e -amin para minutos. Em seguida, indique o número de dias ou minutos para voltar e use os sinais + e – como maior que e menor que.

find -name “arquivo-amostra*” -atime -5

find -name “arquivo-amostra* -amin -5

Combine FIND com outros comandos do Linux

Há um exemplo acima de como usar find com o comando grep, e você pode usá-lo com muitos outros. Você pode ver que usar find e outros comandos pode ser muito poderoso e economizar muito tempo. Imagine ter que excluir vários tipos de arquivos específicos. Em vez de pesquisar no explorador de arquivos, basta criar o comando correto e isso será feito em segundos. Como você usará o comando find agora?

.

Postagens relacionadas:


18.01.2022