Embora o terminal Linux seja uma interface de texto que parece complexa, na verdade é muito flexível, fácil de usar e uma ferramenta bastante útil. Os comandos podem ser facilmente copiados de fontes online e colados no terminal para realizar várias operações. Existem muitos comandos, mas esta postagem se concentrará no comando find.
O comando find é usado para localizar, filtrar ou pesquisar arquivos e pastas em seu sistema de acordo com as condições especificadas pelo usuário e realizar várias operações neles.
Vamos discutir como usar o comando find, sua sintaxe e várias operações realizadas por este comando em detalhes.
Sintaxe do comando find no Linux
A sintaxe do comando find é mostrada abaixo:
achar [caminho] [opções] [expressão]
Três atributos acompanham o comando find:
- [caminho]: define o diretório onde começar a busca.
- [opções]: Define os critérios de filtragem, por exemplo pesquisar um arquivo / pasta por seu nome, permissão, hora ou data.
- [expressão]: define quais ações executar com o arquivo.
Todos os atributos acima são opcionais, pois podem ser usados de acordo com o requisito.
Para demonstração, criei diferentes diretórios e alguns arquivos de texto, veja a imagem abaixo:
Encontrar um arquivo pelo nome
Para pesquisar o arquivo por nome, use o comando fornecido a seguir:
$achar.-nomeMyTextFile1.txt
O ponto após localizar no comando acima indica o diretório atual.
Se você não se lembra do nome exato do arquivo, a pesquisa pode ser refinada ainda mais e não diferencia maiúsculas de minúsculas usando -iname no lugar do nome:
$achar.-inamemytextfile1.txt
Encontrar um arquivo por tipo
Para localizar um arquivo por seu tipo, use a opção -type com letras que também são conhecidas como descritores, como f para arquivos, d para diretórios, l para o link simbólico e s para sockets.
Para pesquisar todos os diretórios, use:
$achar.-modelod
Para pesquisar arquivos, use:
$achar.-modelof
Encontrar um arquivo pela extensão do arquivo
Para pesquisar o arquivo por padrão, por exemplo, extensão de arquivo, como exibir todos os arquivos com .txt, use o seguinte comando:
$achar.-nome *.TXT
Todos os arquivos com .txt serão exibidos junto com seus diretórios correspondentes.
Encontrar e excluir um arquivo
Para pesquisar e excluir um arquivo, use o comando abaixo:
$achar.-inamemytextfile1.txt-exec rm {};
O comando acima primeiro pesquisa o arquivo e depois o exclui. A imagem está demonstrando que MyTextFile1 foi excluído.
Para excluir todos os arquivos com extensão .txt, você pode usar o comando anexado:
$achar.-nome *.TXT-excluir
Encontrar um arquivo por tamanho
O comando find também pode pesquisar um arquivo por tamanho. Basta usar a opção -size junto com seus descritores, como b para blocos de 512 Kb, c para bytes, k para kilobytes, M e G para megabytes e gigabytes respectivamente:
$achar.-modelof-Tamanho -1024c
O comando mencionado acima pesquisa todos os arquivos com um tamanho inferior a 1024 bytes. A pesquisa pode ser ainda mais refinada, por exemplo, se quisermos encontrar todos os arquivos com menos de 1Mb, então usamos o comando abaixo:
$achar.-modelof-Tamanho1M
Para todos os arquivos maiores que 1 MB, use o comando abaixo:
$achar.-modelof-Tamanho+ 1M
Um intervalo de tamanho também pode ser definido, usando o comando anexado:
$achar. -modelof-Tamanho+ 1M-Tamanho10MEncontrar arquivos por permissão
Para pesquisar um arquivo com permissão, usaremos a opção -perm e o código de permissão, conforme demonstrado abaixo:
$achar.-perma 664
Encontre um texto em arquivos de texto
Para localizar texto em vários arquivos de texto em seu sistema, s use o comando fornecido a seguir:
$achar.-modelof-nome *.TXT-exec pegada'Olá'{};
O comando está pesquisando a palavra Hello nos arquivos de texto. A saída são sequências de texto dos arquivos de texto que contêm Hello.
Encontrar um arquivo por data e hora de modificação
Para acessar um arquivo por sua última modificação, use o comando abaixo:
$achar.-modelof-iname *.TXT-mmin+10
O comando acima está procurando por um arquivo modificado pela última vez há quatro minutos e m significa a modificação.
$achar. -modelof-iname *.TXT-amin -10
O comando acima está procurando um arquivo acessado pela última vez há 4 minutos, e o a in amin significa Acesso. Para acessar um arquivo que foi modificado há quatro dias, use -mtime +4 no lugar de mmin +4.
Conclusão
O comando find no Linux é um comando muito útil que permite pesquisar um arquivo ou diretório usando diferentes critérios, e ainda permite que você modifique os arquivos do terminal. Neste guia, observamos a sintaxe do comando find no Linux e aprendemos como usar o comando find para executar várias funções.