Introdução
Imagine que você tem um quarto bagunçado, com centenas de papéis espalhados.
- Alguns são tarefas de casa (
math_hw.txt,english_hw.txt). - Alguns são fotos (
pic1.png,pic2.png). - Alguns são lixo (
temp_1,temp_2).
Se você quiser colocar todas as fotos em uma caixa, não vai pegá-las uma por uma. Você diria: “Pegue qualquer coisa que pareça uma foto”.
No Linux, fazemos isso com curingas (também chamados de expansão de padrões). Eles são como as cartas coringa de um baralho: podem representar outros caracteres.
Essa ideia é poderosa porque permite trabalhar com padrões em vez de nomes individuais. Em sistemas reais, pode haver dezenas, centenas ou milhares de arquivos correspondentes. A seleção baseada em padrões é uma das razões pelas quais o trabalho no shell escala tão bem.
Neste laboratório, você aprenderá a usar dois símbolos importantes:
- O asterisco (
*): representa qualquer coisa (qualquer quantidade de caracteres). - O ponto de interrogação (
?): representa um único caractere.
Selecionar vários arquivos (*)
O asterisco * é o curinga mais conhecido. Ele significa “corresponder a qualquer quantidade de caracteres (inclusive zero)”.
Veja o que há na nossa pasta bagunçada:
ls
Você filtra os arquivos. Agora, imagine que quer listar apenas os arquivos de texto (arquivos que terminam em .txt).
Em vez de digitar ls notes.txt readme.txt report.txt, basta digitar *.txt.
Isso significa: “Encontre qualquer arquivo que termine com .txt”.
ls *.txt
Saída:
notes.txt readme.txt report.txt
O shell analisou *.txt, expandiu o padrão para corresponder a todos os arquivos de texto e ignorou image.png e os demais. Você acabou de filtrar a lista!
Essa explicação apresenta um conceito importante: o shell realiza a expansão do padrão antes de executar o comando ls. Em outras palavras, geralmente ls recebe uma lista pronta de nomes de arquivo, e não o padrão bruto *.txt. Isso explica por que os curingas funcionam com vários comandos diferentes.
Mover arquivos com *
Agora vamos fazer algo útil. Temos vários arquivos de dados: data_2025.csv, data_2024.csv, data_old.log.
Queremos organizar a pasta. Vamos mover todos os arquivos que começam com data_ para uma pasta de backup.
Primeiro, crie a pasta:
mkdir backup
Agora, use o curinga para mover todos os arquivos de uma só vez. O padrão data_* corresponde a qualquer nome que comece com data_.
mv data_* backup/
Acabamos de dizer ao Linux: “Se começar com data_, coloque na caixa de backup”.
É aqui que os curingas se tornam úteis na prática. Em vez de repetir um comando para cada arquivo correspondente, você expressa uma regra de nomenclatura uma única vez e deixa o shell expandi-la.
Verifique se eles saíram do diretório atual:
ls
Depois, confira se chegaram corretamente ao destino:
ls backup
Sucesso! Você moveu três arquivos com um único comando.
Selecionar um único caractere (?)
O asterisco * é abrangente: ele captura tudo. Às vezes, você precisa ser mais específico.
O curinga ponto de interrogação ? representa exatamente um caractere.
Por isso, ? é mais preciso que *. Ele é útil quando os nomes dos arquivos seguem um formato previsível e você quer evitar correspondências acidentais com nomes mais longos do que o esperado.
Temos arquivos chamados temp_1, temp_2 e temp_a.
temp_*corresponderia atemp_1e atemp_very_long_name.temp_?corresponde somente quando há exatamente um caractere depois do sublinhado.
Vamos testar o padrão antes de excluir os arquivos (um bom hábito!):
ls temp_?
Correspondências: temp_1, temp_2, temp_a.
Agora que temos certeza, vamos excluí-los:
rm temp_?
Verifique se eles foram removidos:
ls
Isso é muito útil para corresponder a arquivos com estruturas de nomenclatura específicas.
Vale lembrar o hábito de segurança desta etapa: visualize um padrão com um comando que não altera nada, como ls, antes de usá-lo com rm ou mv. A correspondência de padrões é poderosa; por isso, é recomendável verificar os arquivos antes de executar a ação.
Resumo
Você descobriu o poder da correspondência de padrões.
*(Asterisco): o curinga “corresponder a tudo”. É ótimo para selecionar todos os arquivos de um tipo (*.png) ou todos os arquivos de uma série (day_*).?(Ponto de interrogação): o curinga “um único caractere”. É ótimo para correspondências precisas (file_?.txt).
Isso conclui o Módulo 2. Agora você sabe como:
- Navegar pela árvore de arquivos (
pwd,cd,ls). - Criar arquivos e pastas (
touch,mkdir). - Copiá-los e movê-los (
cp,mv). - Excluí-los (
rm,rmdir). - Selecioná-los em lotes (
*,?).
Você está pronto para o Módulo 3, no qual abrirá esses arquivos e realmente lerá e editará o texto dentro deles!



