Enligt Wikipedia är en metakarakter vilken karaktär som helst, som en karat (^), dollartecken ($) eller en asterisk (*).
När det gäller Linux finns det ett rättvist antal av dessa metakarakter och deras betydelser skiljer sig åt beroende på vilket kommando eller program du kör.
Fullstopp som en Metacharacter (.)
Det ödmjuka fullstoppet används för att donera den nuvarande positionen när du kör kommandon som cd, hitta eller sh men inom applikationer som awk, grep och sed används det för att beteckna vilken karaktär som helst.
Som ett exempel kommer följande kommando att hitta alla mp3-filer i den aktuella mappen och nedan.
hitta. -namn * .mp3
Om du kör det här kommandot i din nuvarande arbetsförteckning (pwd) får du förmodligen resultat tillbaka, förutsatt att du håller dina mp3-filer i en musikmapp i din hemmapp.
Kolla nu på det här kommandot:
ps -ef | grep f..efox
PS-kommandot listar alla körprocesser på din dator. Grep-kommandot tar rader av inmatning och söker efter ett mönster.
Därför får PS -ef-kommandot en lista över löpande processer och ger den grep som söker efter vilken rad som helst i listan som har f..efox där. kan betyda alla tecken.
Om du har Firefox kör du får en matchning. På samma sätt, om du har ett program som heter fonefox eller freefox körs, kommer de också att returneras.
Asterisken som en metakarakter (*)
Asterisken är en mer allmänt känd metakarakter och används för att innebära 0 eller mer när man söker efter ett mönster.
Till exempel:
hitta. -namn * .mp3
* .Mp3 returnerar en matchning för något filnamn som slutar i .mp3. På samma sätt kunde jag ha använt asterisken med grep-kommandot som följande visar:
ps -ef | grep F * efox
Det är värt att notera att detta skiljer sig något för att asterisken betyder noll eller mer så väl som att hitta firefox, facefox och fonefox det kan också hitta flutefox, ferretfox och till och med bara fefox.
Carat som en metakarakter (^)
Karaten (^) används för att beteckna starten på en linje eller en sträng. Så hur används det?
Kommandot ls används för att lista alla filer i en mapp enligt följande:
ls
Om du vill veta alla filerna i en mapp som börjar med en viss sträng som "gnome" kan karaten användas för att ange den strängen.
Till exempel:
ls | grep ^ gnome
Observera att detta endast listar filer som börjar med GNOME. Om du vill ha filer som har en gnome i filnamnet någonstans så skulle du återigen återgå till asterisken.
I ovanstående exempel returnerar ls en lista med filnamn och skickar den listan till grep som används för mönster matchning. grep vet att karatsymbolen betyder att hitta något som börjar med tecknen som kommer efter det och i det här fallet är det en gnome.
Dollarsymbolet som en Metacharacter ($)
Dollarsymbolen kan ha flera betydelser som en metakarakter inom Linux.
När det används för att matcha mönster betyder det motsatt att karate och betecknar vilket mönster som slutar med en viss sträng.
Till exempel:
ls | grep png $
Här listas alla filer som slutar med png.
Dollarsymbolen används också för att få tillgång till miljövariabler inom bash-skalet.
Till exempel:
exporthund = mollyecho $ hund
Linjens exporthund = molly skapar en miljövariabel som kallas hund och sätter sitt värde till molly. För att komma åt miljövariabeln används $ symbolen. Med $ -symbolen visar echo $-hundsdeklarationen molly men utan det visar ekohundsdeklarationen bara ordhunden.
Escaping Metacharacters
Ibland vill du inte att metakarakteren har en speciell betydelse. Vad händer om du har en fil som heter f.refox och en fil som heter firefox.
Kolla nu på följande kommando:
ls | grep f.refox
Vad tycker du är tillbaka? Både f.refox och firefox returneras eftersom de båda matchar mönstret.
För att bara returnera f.refox skulle du behöva flytta fullstoppet för att faktiskt innebära ett stopp som följer:
ls | grep f . refox
Vanliga metakaler och deras innebörd
| Karaktär | Menande |
| . | Alla tecken |
| * | Noll eller flera tecken |
| ^ | Matcha en rad eller en sträng som börjar med ett mönster (dvs ^ gnome) |
| $ | Matcha alla rader eller strängar som slutar med ett mönster (dvs gnome $) |
| Escapes nästa tecken för att ta bort dess speciella betydelse | |
| Matcha en av en lista eller ett intervall (dvs "abc", "def" eller 1..9 | |
| + | Matcha ett eller flera föregående (dvs grep a +) |
| ? | Matcha noll eller en föregående |




