Guia Básico de Linux - Coringas
Sumário⌗
Coringas⌗
O coringa (ou referência global) é um recurso utilizado para especificar um ou mais arquivos e/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 de a até z seguido de um caracter de 0 até 9.[a,z][1,0]
- Faz a referência aos caracteres a e z seguido de um caracter 1 ou 0 naquela posição.[a-z,1,0]
- Faz referência a intervalo de caracteres de a até z ou 1 ou 0 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 exceto a, b e c.
{padrões}
- Expande e gera strings para pesquisa de padrões de um arquivo/diretório.X{ab,01}
- Faz referência a sequência de caracteres Xab ou X01X{a-z,10}
- Faz referência a sequência de caracteres Xa-z e X10.
O que difere este método de expansão dos demais é que a existência do arquivo/diretório é opcional para geração do resultado, sendo assim bastante útil para a criação de diretórios. Lembrando que os 4 tipos de coringas "*", "?", "[]", "{}"
podem ser usados juntos.
Utilização⌗
Para entender melhor vamos a prática:
Vamos dizer que tenha 5 arquivos 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 *
pois todos os arquivos serão listados se o ls
for usado sem nenhum Coringa. Utilizamos aqui apenas para exemplificar.
Para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com exceção de teste4.new, teste5.new, inicialmente, podemos fazer isso de três maneiras:
-
Utilizando o comando
ls *.txt
que lista todos os arquivos que começam com qualquer nome e terminam com.txt
. -
Utilizando o comando
ls teste?.txt
, que lista todos os arquivos que começam com o nome teste, tenham qualquer caracter no lugar do coringa?
e terminem com.txt
. Com o exemplo acima,teste*.txt
também faria a mesma coisa, mas se tivéssemos um arquivo intituladoteste10.txt
, este arquivo também seria listado. -
Utilizando o comando
ls teste[1-3].txt
, que pega todos os arquivos que começam com o nome teste, tenham qualquer caracter entre o número 1-3 no lugar da 6a (sexta) letra e terminem com.txt
. Neste caso se obtém uma filtragem mais exata, pois o coringa?
especifica qualquer caracter naquela posição e dentro de[]
, que pode especificar 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 com teste, contenham qualquer caracter na posição do coringa?
e terminem com.new
. -
ls teste[4,5].*
que lista todos os arquivos que começam com teste contenham números de 4 e 5 naquela posição e terminem com qualquer extensão.
Importante ressaltar, que ainda existem outras maneiras de fazermos esta mesma tarefa, mas tudo gira em torno da preferência do utilizador ao executar tais comandos. Entretanto, o intuito deste tópico, é apenas mostrar algumas maneiras de especificar mais de um arquivo de uma só vez. Importante destacar que o uso dos coringas tem grande importância e utilidade ao copiar arquivos, apagar, mover, renomear, etc em diversas partes do sistema.
Alias, esta é uma característica do GNU/Linux: permitir que uma tarefa seja feita da forma como o utilizador queira, dando-lhe a liberdade de fazer a seu gosto.
Créditos⌗
fonte: FOCALINUX