Skip to content
Latchkey

O Que É um Wildcard? Caracteres de Padrão no Shell

Um wildcard é um caractere especial, como * ou ?, que substitui um ou mais outros caracteres quando o shell corresponde nomes de arquivo.

Wildcards são os blocos de construção dos padrões do shell. O asterisco que corresponde a qualquer coisa, o ponto de interrogação que corresponde a um único caractere, estes permitem referir-se a muitos arquivos de uma vez sem nomear cada um. Scripts de CI usam wildcards para selecionar saídas de build, arquivos de teste e logs, então conhecer as regras evita surpresas.

O que é um wildcard

Um wildcard é um caractere placeholder que o shell interpreta de forma especial durante a expansão de nomes de arquivo. Em vez de corresponder a um símbolo literal, ele substitui algum conjunto de caracteres.

Os principais wildcards

  • * corresponde a qualquer sequência de caracteres, incluindo nenhuma.
  • ? corresponde a exatamente um caractere.
  • [...] corresponde a qualquer caractere listado nos colchetes.
  • [!...] corresponde a qualquer caractere não listado.

Wildcards versus globbing

Wildcards são os caracteres; globbing é o processo de expandir padrões construídos a partir deles em nomes de arquivo. Os dois termos são intimamente relacionados, e as pessoas frequentemente os usam de forma intercambiável.

Quando wildcards não se aplicam

Dentro de aspas, wildcards perdem seu significado especial e são tratados literalmente. "*.js" é a string de dois caracteres, não um padrão, o que importa quando você quer passar um padrão a outra ferramenta.

Wildcards no CI

Um workflow que faz upload de coverage/*.xml depende do shell ou da action expandir o wildcard. Se uma ferramenta, não o shell, deve expandi-lo (como em um filtro de path), você pode precisar colocá-lo entre aspas para que o shell o deixe em paz.

Correspondendo arquivos em runners gerenciados

Nos runners da Latchkey, wildcards se comportam como em qualquer shell Linux. Quando você quer que uma ferramenta como um test runner trate o padrão ela mesma, coloque-o entre aspas para que o shell não o expanda antes.

Principais conclusões

  • Um wildcard é um caractere como * ou ? que substitui outros em um padrão.
  • Wildcards impulsionam o globbing, a expansão de nomes de arquivo do shell.
  • Colocar um padrão entre aspas impede o shell de expandir os wildcards.

Guias relacionados