Een wildcard is een joker-teken in de shell dat voor meerdere bestandsnamen kan staan. De shell vervangt het patroon door alle passende namen vóórdat het commando start — dit heet globbing.
| Patroon | Betekent | Voorbeeld |
|---|---|---|
* | Nul of meer tekens | *.log — alle log-bestanden |
? | Precies één teken | foto?.jpg — foto1.jpg, fotoA.jpg |
[abc] | Eén teken uit de set | rapport[12].pdf |
[a-z] | Eén teken uit het bereik | [0-9]* — begint met een cijfer |
{a,b} | Elk van de alternatieven | *.{jpg,png} (brace expansion, Bash) |
ls *.txt betekent dat de shell eerst *.txt uitbreidt naar bijvoorbeeld a.txt b.txt, en dan pas ls a.txt b.txt uitvoert. Daarom moet je quoten als het patroon voor het commando zelf bedoeld is:
find . -name "*.txt" # quotes: find krijgt het patroon zelf
rm *.bak # de shell breidt uit vóór rm start
Verborgen bestanden (beginnend met .) worden door * standaard overgeslagen.
Wildcards lijken op reguliere expressies maar zijn eenvoudiger en betekenen iets anders: in een regex betekent * "nul of meer keer het vorige teken", bij globbing "nul of meer willekeurige tekens".