Os poderosos curingas do bash no Linux

Os poderosos curingas bash - 2.0

Sem essas pequenas coisas legais chamadas curingas de shell, trabalhar na linha de comando do Linux é bem penoso. Portanto, certifique-se de colocar os curingas em bom uso.

O que são curingas de shell? >

Curingas são um recurso de shell que torna a linha de comando muito mais poderosa do que qualquer gerenciador de arquivos GUI. Veja, se você deseja selecionar um grande grupo de arquivos em um gerenciador de arquivos gráfico, geralmente precisa selecioná-los com o mouse. Isso pode parecer simples, mas em alguns casos pode ser muito frustrante. Por exemplo, suponha que você tenha um diretório com uma grande quantidade de todos os tipos de arquivos e subdiretórios, e decida mover todos os arquivos HTML, que têm a palavra "linux" em algum lugar no meio de seus nomes, desse grande diretório para outro diretório. Qual é uma maneira simples de fazer isso? Se o diretório contiver uma grande quantidade de arquivos HTML com nomes diferentes, sua tarefa será tudo menos simples!

Na CLI do Linux, essa tarefa é tão simples de realizar quanto mover apenas um arquivo HTML, e é tão fácil por causa do curingas do shell. Os curingas são caracteres especiais que permitem selecionar nomes de arquivos que correspondem a determinados padrões de caracteres. Isso o ajuda a selecionar até mesmo um grande grupo de arquivos digitando apenas alguns caracteres e, na maioria dos casos, é mais fácil do que selecionar os arquivos com o mouse.

Aqui está uma lista dos curingas mais comumente usados ​​no bash:

Wildcard Partidas
* zero ou mais caracteres
? exatamente um caractere
[abcde] exatamente um personagem listado
[ae] exatamente um caractere no intervalo dado
[! abcde] qualquer caractere que não esteja listado
[! ae] qualquer caractere que não esteja no intervalo especificado
{debian, linux} exatamente uma palavra inteira nas opções dadas

Você pode usar curingas com qualquer comando que aceite nomes de arquivos como argumentos.

 

Exemplos de curinga >

Vamos dar alguns exemplos. Provavelmente, o caractere * já é familiar para você, porque é amplamente usado em muitos outros lugares também, não apenas no Linux. Por exemplo, o seguinte remove todos os arquivos do diretório atual:
rm *

O comando a seguir move todos os arquivos HTML, que têm a palavra “linux” em seus nomes, do diretório de trabalho para um diretório denominado dir1:
mv *linux*.html dir1

Veja, eu lhe disse que mover vários arquivos pode ser tão simples quanto mover apenas um arquivo!

O seguinte exibe todos os arquivos que começam com d e terminar com .txt:
less d*.txt

O comando a seguir remove todos os arquivos cujos nomes começam com junk., seguido por exatamente três caracteres:
rm junk.???

Com este comando você lista todos os arquivos ou diretórios cujos nomes começam com hda, seguido por exatamente um numeral:
ls hda[0-9]

Isso lista todos os arquivos ou diretórios que começam com hda, seguido por exatamente dois numerais:
ls hda[0-9][0-9]

A seguir lista todos os arquivos ou diretórios cujo nome começa com hd or sd, seguido por qualquer caractere único entre a e c:
ls {hd,sd}[a-c]

Este comando copia todos os arquivos, que começam com uma letra maiúscula, para o diretório dir2:
cp [A-Z]* dir2

Isso exclui todos os arquivos que não terminam com ceh or g:
rm *[!cehg]

Eu poderia continuar e continuar com esses exemplos, mas você entendeu. Você pode usar padrões simples ou combinar diferentes curingas e construir padrões muito complexos, e como eu disse antes, você pode usá-los com quaisquer comandos que aceitem nomes de arquivos como argumentos.