domingo, 12 de agosto de 2012

Curingas nas operações com arquivos e diretórios no Linux

Curingas são caracteres especiais, ou metacaracteres, usados para especificar, em uma única linha de comando, um conjunto de arquivos ou diretórios de uma única vez. Com o uso dos curingas, o interpretador de comandos realiza a expansão para todos os caracteres possíveis, montando todas as combinações para os nomes dos arquivos ou diretórios.

Existem os seguintes tipos de curingas no Linux:

*          equivale a um conjunto de zero ou mais caracteres

?          equivale a um único caractere

[padrão]
  [ ]      equivale a qualquer um dos caracteres especificados
           dentro dos colchetes
  [^]      equivale a qualquer outro caractere menos os caracteres
           especificados
  [-]      equivale a qualquer um dos caracteres da lista

{padrões}
  {,}      equivale a qualquer padrão da lista


Exemplos:

arq*.txt           (todos iniciados com arq)

arq?.txt           (todos iniciados com arq + 1 caractere)

arq[134].txt       (arq1.txt, arq3.txt, arq4.txt)

arq[13][24].txt    (arq12.txt, arq14.txt, arq32.txt, arq34.txt)

arq[^25].txt       (exclui arq2*.txt e arq5*.txt)

arq[1-3].txt       (arq1.txt, arq2.txt, arq3.txt)

arq{[1-3],6}.txt   (arq1.txt, arq2.txt, arq3.txt, arq6.txt)

arq.{doc,xls,txt}  (arq.doc, arq.xls, arq.txt)


O curinga é um recurso que permite a filtragem do que será manipulado pela linha de comando. E como visto em alguns exemplos, os tipos de curingas podem ser usados em conjunto.

As chaves {} possuem um recurso a mais, a geração de caracteres para ser usada na criação de arquivos ou diretórios. Por exemplo, o comando "mkdir aula{1,2,3}" cria os diretórios aula1, aula2 e aula3 de uma só vez.

Os curingas dão vantagem a interface em modo texto quando na seleção de muitos arquivos ou diretórios, pois este procedimento em uma interface gráfica pode ser cansativo.

Um comentário: