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?
.