Como encontrar arquivos por nome ou extensão no Linux
Muitas vezes nos encontramos em uma situação em que precisamos procurar vários arquivos com extensões diferentes, o que é um cenário comum para muitos usuários Linux, principalmente quando trabalhamos dentro do terminal.
Existem vários utilitários Linux que podemos usar para localizar arquivos no sistema de arquivos, mas encontrar arquivos com múltiplas extensões às vezes pode ser complicado e exigir comandos específicos.
Um dos muitos utilitários para localizar arquivos em um sistema de arquivos Linux é o utilitário find. Neste guia prático, veremos alguns exemplos de uso de find para nos ajudar a localizar vários nomes de arquivos de uma vez.
Antes de nos aprofundarmos nos comandos reais, vamos dar uma breve introdução ao utilitário `find` do Linux.
Introdução ao comando find
O comando find é uma ferramenta versátil usada para pesquisar arquivos e diretórios em um sistema de arquivos Linux.
A sintaxe mais simples e geral do utilitário find é a seguinte:
find directory options [expression]
Aqui está uma breve visão geral de seus componentes:
- diretório: O diretório onde você deseja iniciar a pesquisa.
- opções: Parâmetros adicionais para refinar sua pesquisa.
- expressão: Condições para correspondência de arquivos ou diretórios.
Vejamos alguns exemplos do comando find no Linux.
Procurando por múltiplas extensões de arquivo
Para encontrar arquivos com extensões diferentes, você pode usar a opção -name
combinada com o operador -o
(OR), que permite especificar vários padrões para corresponder a diferentes tipos de arquivo.
Vejamos alguns exemplos para ilustrar como isso funciona.
Exemplo 1: Encontrando arquivos .sh e .txt
Supondo que você queira encontrar todos os arquivos no diretório atual com extensões de arquivo .sh
e .txt
, você pode fazer isso executando o comando abaixo:
find . -type f \( -name "*.sh" -o -name "*.txt" \)
Interpretação do comando acima:
.
significa o diretório atual- A opção
-type
é usada para especificar o tipo de arquivo e aqui estamos procurando por arquivos regulares representados porf
- A opção
-name
é usada para especificar um padrão de pesquisa, neste caso, as extensões de arquivo -o
significa “OU”
É recomendável colocar as extensões de arquivo entre colchetes e também usar o caractere de escape \
(barra invertida) como no comando.
Exemplo 2: Encontrando arquivos .sh, .txt e .c
Para encontrar três nomes de arquivos com extensões .sh
, .txt
e .c
, execute o comando abaixo:
find . -type f \( -name "*.sh" -o -name "*.txt" -o -name "*.c" \)
Exemplo 3: Encontrando arquivos .png, .jpg, .deb e .pdf
Aqui está outro exemplo onde procuramos arquivos com extensões .png
, .jpg
, .deb
e .pdf
:
find /home/aaronkilik/Documents/ -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.deb" -o -name ".pdf" \)
Exemplo 4: Usando curingas para encontrar
Você também pode usar curingas para combinar padrões. Por exemplo, para localizar todos os arquivos com extensões .log
, .txt
ou .cfg
:
find /var/log/ -type f \( -name "*.log" -o -name "*.txt" -o -name "*.cfg" \)
Exemplo 5: Encontrando Arquivos com Padrões Complexos
Suponha que você queira encontrar arquivos que terminam com .tar.gz
ou .zip
:
find /path/to/search/ -type f \( -name "*.tar.gz" -o -name "*.zip" \)
Quando você observa criticamente todos os comandos acima, o pequeno truque é usar a opção -o
no comando find, que permite adicionar mais nomes de arquivos ao array de pesquisa e também saiba os nomes ou extensões dos arquivos que você está procurando.
Conclusão
Neste guia, exploramos como usar o comando find para pesquisar arquivos com múltiplas extensões. Ao usar a opção -name
em combinação com o operador -o
, você pode localizar facilmente arquivos que correspondam a vários padrões em um único comando.
Para se aprofundar no comando find e em seus vários recursos, você pode consultar a página de manual do find digitando man find
em seu terminal.
man find
Sinta-se à vontade para experimentar esses comandos e adaptá-los às suas necessidades específicas!