Expansão e Globbing do Shell
Entenda como o shell expande comandos, incluindo expansão de chaves, expansão de til e padrões de correspondência de nomes de arquivos.
Expansão e Globbing do Shell é uma aula grátis de Linux Command Line & Bash Scripting Mastery no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Linux Command Line & Bash Scripting Mastery, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.
O que é expansão do shell?
No Linux, o shell funciona como um tradutor entre você e o sistema operacional. Antes de executar seu comando, ele geralmente realiza uma espécie de "mágica" chamada expansão.
A expansão do shell significa que ele procura caracteres especiais ou padrões no seu comando e os substitui por outra coisa. Isso acontece antes de o comando ser realmente executado, reduzindo a digitação e tornando os comandos mais poderosos!
Seu diretório pessoal com til `~`
A expansão do til (~) é um atalho muito prático. Ela é expandida automaticamente para o diretório pessoal do usuário atual.
Em vez de digitar /home/yourusername, pode simplesmente usar ~. Isso é especialmente útil para navegar ou fazer referência a arquivos na sua pasta pessoal.
echo ~
echo ~/DocumentsTil para outros usuários
O til não serve apenas para o seu próprio diretório pessoal! Também pode usá-lo para fazer referência ao diretório pessoal de outro usuário.
Ao digitar ~username, o shell expandirá isso para o diretório pessoal do "username" especificado. Isso é ótimo para acessar arquivos ou configurações compartilhados.
~rootseria expandido para/root~guestseria expandido para/home/guest
Expansão de chaves `{}`
A expansão de chaves permite gerar sequências de caracteres arbitrárias. É uma forma rápida de criar vários itens a partir de um único padrão, sem precisar digitar todos eles.
O shell expandirá o conteúdo dentro das chaves {} em uma lista de palavras separadas. Isso é muito útil para criar arquivos ou diretórios com nomes semelhantes ou para executar comandos em vários itens.
echo {apple,banana,cherry}Intervalos com chaves
Também pode usar a expansão de chaves para gerar sequências de números ou letras. Isso é feito usando dois itens separados por .. dentro das chaves.
O shell gerará todos os itens da sequência, facilitando a criação de arquivos ou diretórios numerados ou a iteração por um conjunto de valores.
echo file_{1..3}.txt
echo {a..c}_report.logIntrodução ao uso de curingas
O uso de curingas é a forma como o shell encontra nomes de arquivos e caminhos usando caracteres curinga especiais. É como usar um "padrão de pesquisa" para encontrar arquivos.
Quando digita um comando como ls *.txt, o shell não envia *.txt para ls. Em vez disso, ele expande *.txt para uma lista de todos os arquivos correspondentes no diretório atual e então passa essa lista para ls.
Correspondendo a tudo com `*`
O asterisco (*) é o curinga mais comum. Ele corresponde a zero ou mais caracteres em um nome de arquivo.
Pode usá-lo para corresponder a qualquer sequência de caracteres, o que o torna extremamente versátil para selecionar arquivos com base em partes de seus nomes.
mkdir -p glob_test
touch glob_test/report.txt glob_test/image.jpg glob_test/document.pdf
echo "Files ending in .txt:"
ls glob_test/*.txt
rm -rf glob_testCorrespondendo a um caractere com `?`
O curinga ponto de interrogação (?) corresponde a exatamente um caractere.
Isso é útil quando sabe o tamanho exato da parte do nome de arquivo que deseja encontrar, mas não o caractere específico.
mkdir -p glob_test
touch glob_test/file1.log glob_test/file2.log glob_test/fileA.log
echo "Files matching file?.log:"
ls glob_test/file?.log
rm -rf glob_testCaracteres específicos `[]`
Pode usar colchetes ([]) para corresponder a qualquer caractere individual dentro de um conjunto especificado.
Isso permite uma correspondência mais precisa do que ?. Pode listar caracteres individuais ou especificar um intervalo (por exemplo, [a-z] para qualquer letra minúscula, [0-9] para qualquer algarismo).
mkdir -p glob_test
touch glob_test/photoA.png glob_test/photoB.png glob_test/photoC.png glob_test/photoD.png
echo "Files matching photo[A-C].png:"
ls glob_test/photo[A-C].png
rm -rf glob_testCombinações de curingas
Pode combinar diferentes padrões de curingas e até mesmo a expansão de chaves para selecionar arquivos de forma poderosa.
O shell processa essas expansões da esquerda para a direita, criando padrões complexos que correspondem exatamente ao que precisa.
mkdir -p glob_test
touch glob_test/data_01.csv glob_test/data_02.txt glob_test/data_a.log glob_test/info_01.txt
echo "Files matching data_[0-9]*.{txt,csv}:"
ls glob_test/data_[0-9]*.{txt,csv}
rm -rf glob_testVerificação rápida
Qual dos comandos a seguir listará os arquivos chamados report1.doc, report2.doc e report3.doc, mas NÃO reportA.doc?
Recapitulação e próximos passos
Excelente trabalho! Você aprendeu como o shell expande os comandos antes mesmo de executá-los. Essa "mágica" torna seu trabalho na linha de comando muito mais eficiente.
- Expansão do til (
~): um atalho para diretórios pessoais. - Expansão de chaves (
{}): gera sequências ou textos personalizados. - Uso de curingas (
*,?,[]): encontra nomes de arquivos usando curingas para uma seleção poderosa baseada em padrões.
Entender essas expansões é essencial para escrever comandos eficazes e concisos. Continue praticando!
Perguntas Frequentes
A aula “Expansão e Globbing do Shell” é grátis?
Sim — o texto completo de “Expansão e Globbing do Shell” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Linux Command Line & Bash Scripting Mastery, atualize para CoddyKit PRO. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.
O que vou aprender em “Expansão e Globbing do Shell”?
Entenda como o shell expande comandos, incluindo expansão de chaves, expansão de til e padrões de correspondência de nomes de arquivos. Você pratica Linux Command Line & Bash Scripting Mastery com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Linux Command Line & Bash Scripting Mastery?
Nenhuma experiência prévia é necessária. Linux Command Line & Bash Scripting Mastery no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Expansão e Globbing do Shell”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Linux Command Line & Bash Scripting Mastery?
Sim. Cada aula de Linux Command Line & Bash Scripting Mastery inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Controle de Tarefas (bg, fg, jobs)
- Expansão e Globbing do Shell
- Aliases e Prompts Personalizados
- Funções de Shell e Fragmentos Reutilizáveis