coringas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4 tipos de coringas no GNU/Linux:
-
"*" - Faz referência a um nome completo/restante de um arquivo/diretório.
-
"?" - Faz referência a uma letra naquela posição.
-
[padrão]
- Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser:-
[a-z][0-9]
- Faz referência a caracteres dea
atéz
seguido de um caracter de0
até9
. -
[a,z][1,0]
- Faz a referência aos caracteresa
ez
seguido de um caracter1
ou0
naquela posição. -
[a-z,1,0]
- Faz referência a intervalo de caracteres dea
atéz
ou1
ou0
naquela posição.
A procura de caracteres é "Case Sensitive" assim se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar
[a-zA-Z]
.Caso a expressão seja precedida por um
^
, faz referência a qualquer caracter exceto o da expressão. Por exemplo[^abc]
faz referência a qualquer caracter excetoa
,b
ec
. -
-
{padrões}
- Expande e gera strings para pesquisa de padrões de um arquivo/diretório.-
X{ab,01}
- Faz referência a seqüencia de caracteresXab
ouX01
-
X{a-z,10}
Faz referencia a seqüencia de caracteres Xa-z
eX10
.
-
O que diferencia este método de expansão dos demais é que a existência do arquivo/diretório é opcional para geração do resultado. Isto é útil para a criação de diretórios. Lembrando que os 4 tipos de coringas ("*", "?", "[]", "{}") podem ser usados juntos.
Para entender melhor vamos a prática:
Vamos dizer que tenha 5 arquivo no diretório /usr/teste
:
teste1.txt, teste2.txt, teste3.txt, teste4.new,
teste5.new
.
Caso deseje listar todos os arquivos do
diretório /usr/teste
você pode usar o coringa "*" para
especificar todos os arquivos do diretório:
cd /usr/teste
e ls *
ou ls
/usr/teste/*
.
Não tem muito sentido usar o comando ls com "*" porque todos os arquivos serão listados se o ls for usado sem nenhum Coringa.
Agora para listar todos os arquivos teste1.txt, teste2.txt,
teste3.txt
com excessão de teste4.new
,
teste5.new
, podemos usar inicialmente 3 métodos:
-
Usando o comando
ls *.txt
que pega todos os arquivos que começam com qualquer nome e terminam com.txt
. -
Usando o comando
ls teste?.txt
, que pega todos os arquivos que começam com o nometeste
, tenham qualquer caracter no lugar do coringa?
e terminem com.txt
. Com o exemplo acimateste*.txt
também faria a mesma coisa, mas se também tivéssemos um arquivo chamadoteste10.txt
este também seria listado. -
Usando o comando
ls teste[1-3].txt
, que pega todos os arquivos que começam com o nometeste
, tenham qualquer caracter entre o número 1-3 no lugar da 6a letra e terminem com.txt
. Neste caso se obtém uma filtragem mais exata, pois o coringa ? especifica qualquer caracter naquela posição e [] especifica números, letras ou intervalo que será usado.
Agora para listar somente teste4.new
e
teste5.new
podemos usar os seguintes métodos:
-
ls *.new
que lista todos os arquivos que terminam com.new
-
ls teste?.new
que lista todos os arquivos que começam comteste
, contenham qualquer caracter na posição do coringa ? e terminem com.new
. -
ls teste[4,5].*
que lista todos os arquivos que começam comteste
contenham números de 4 e 5 naquela posição e terminem com qualquer extensão.
Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma só vez. O uso de coringas será útil ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta é uma característica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de várias maneiras diferentes.
Copyright © 1999-2020 - Gleydson Mazioli da Silva