Descrição
Curingas são recursos usados para especificar um conjunto de arquivos e/ou diretórios de uma única vez. Permitindo assim, manipular vários arquivos/diretórios com um único comando.
São exemplos de curingas no Linux:
- * que substitui um conjunto (zero ou mais de zero) de caracteres;
- ? que substitui um único caractere;
- [ ] que substitui caracteres especificados dentro dos colchetes;
- { } que substitui uma sequência de caracteres especificados dentro das chaves.
Exemplos
Por exemplo, suponha um diretório com os seguintes arquivos:
- teste1.txt;
- teste2.txt;
- teste3.txt;
- teste4.txt;
- teste5.txt;
- teste10.txt;
- teste20.txt.
O comando
rm teste*.txt
ou
rm teste*
remove todos os arquivos do diretório, enquanto o comando
rm teste?.txt
remove apenas os cinco primeiros arquivos (teste1.txt a test5.txt) e o comando
rm teste[2-4].txt
remove os arquivos teste2.txt, teste3.txt e teste4.txt. Se usarmos a vírgula no lugar do traço no exemplo acima, isto é,
rm teste[2,4].txt
apenas os arquivos teste2.txt e teste4.txt são apagados. O caractere ^ no início da expressão significa exclusão, ou seja, qualquer outro caractere menos os caracteres especificados. Portanto, o comando
rm teste[^2,4].txt
apaga os arquivos teste1.txt, teste3.txt e teste5.txt. Note que este comando não apaga os arquivos teste10.txt e teste20.txt, pois o curinga substitui apenas um caractere. Para substituir mais de um caractere podemos usar um ou mais curingas em um mesmo comando. Por exemplo,
rm teste[^2,4]*.txt
remove também o arquivo teste10.txt, além dos arquivos teste1.txt, teste3.txt e teste5.txt. Para deletar apenas os arquivos teste10.txt e teste20.txt, podemos usar
rm teste{10,20}.txt
É possível também combinar vários curingas. Por exemplo, para deletar os arquivos teste1.txt, teste2.txt, teste3.txt e teste10.txt basta entrar com
rm teste{[1-3],10}.txt