Podľa Wikipédie je metacharakter akýkoľvek znak, ktorý má špeciálny význam, napríklad karát (^), znak dolára ($) alebo hviezdičku (*).
Pokiaľ ide o Linux, existuje veľký počet týchto metaznačiek a ich významy sa líšia v závislosti od toho, ktorý príkaz alebo program používate.
Full Stop ako metacharakter (.)
Skromná plná zastávka sa používa na darovanie aktuálnej pozície pri spustení príkazov ako cd, find alebo sh, ale v aplikáciách ako awk, grep a sed sa používa na označenie ľubovoľného znaku.
Napríklad nasledujúci príkaz nájde všetky súbory mp3 v aktuálnom priečinku a nižšie.
Nájsť . -name * .mp3
Ak spustíte daný príkaz vo svojom pracovnom adresári (pwd), pravdepodobne budete mať vrátené výsledky za predpokladu, že budete mať svoje súbory mp3 v hudobnom priečinku vo vašom domovskom priečinku.
Pozrite sa na tento príkaz:
ps -ef | grep f..efox
Príkaz ps uvádza všetky spustené procesy v počítači. Príkaz grep preberá riadky vstupu a vyhľadáva vzor.
Preto príkaz ps -ef dostane zoznam bežiacich procesov a dáva ho na grep, ktorý hľadá ľubovoľný riadok v zozname, ktorý má f..efox kde. môže znamenať ľubovoľný znak.
Ak máte spustený firefox, dostanete zápas. Podobne, ak máte program nazvaný fonefox alebo freefox beží, budú tiež vrátené.
Hviezdička ako metacharakter (*)
Hviezdička je všeobecne známy metacharakter a používa sa pri hľadaní vzoru na označenie 0 alebo viac.
Napríklad:
Nájsť . -name * .mp3
* .Mp3 vracia zhodu pre ľubovoľný názov súboru, ktorý končí v .mp3. Podobne by som mohol použiť hviezdičku pomocou príkazu grep ako nasledujúci:
ps -ef | grep F * efox
Stojí za zmienku, že sa to trochu líši, pretože hviezda znamená nulu alebo viac, rovnako ako nájsť firefox, facefox a fonefox to tiež môže nájsť flutefox, ferretfox a dokonca len fefox.
Karát ako metacharakter (^)
Karát (^) sa používa na označenie začiatku čiary alebo reťazca. Tak ako sa používa?
Príkaz ls slúži na zoznam všetkých súborov v priečinku takto:
ls
Ak chcete vedieť všetky súbory v priečinku, ktoré začínajú určitým reťazcom, ako napríklad "gnome", karát sa dá použiť na zadanie reťazca.
Napríklad:
ls | grep ^ gnome
Upozorňujeme, že sú uvedené len súbory, ktoré začínajú s GNOME. Ak chcete mať súbory, ktoré majú názov GNOME kdekoľvek, potom by ste sa vrátili späť k hviezdičke.
Vo vyššie uvedenom príklade ls vráti zoznam názvov súborov a prechádza tento zoznam na grep, ktorý sa používa na prispôsobenie vzorov. grep vie, že karátový symbol znamená nájsť čokoľvek, čo začína znakmi, ktoré po ňom prídu a v tomto prípade je to gnome.
Symbol dolára ako metacharakter ($)
Symbol dolára môže mať viac významov ako metacharakter v systéme Linux.
Keď sa používa na porovnávanie vzorov, znamená to opačný k karátom a označuje akýkoľvek vzor, ktorý končí určitým reťazcom.
Napríklad:
ls | grep png $
Tento zoznam obsahuje zoznam všetkých súborov, ktoré končí png.
Symbol dolára sa používa aj na prístup k premenným prostredia v rámci bash shell.
Napríklad:
export pes = mollyecho $ pes
Linkový export pes = molly vytvára premennú prostredia nazývanú pes a nastaví jeho hodnotu na molil. Na prístup k premennej prostredia sa používa symbol $. So symbolom $ označí výstražný znak "dog dog" molický, ale bez toho, hlásenie ozveny psov len zobrazuje slovo pes.
Únikové metacharactery
Niekedy nechcete, aby metacharakter mal zvláštny význam. Čo ak máte súbor s názvom f.refox a súbor s názvom firefox.
Pozrite sa na nasledujúci príkaz:
ls | grep f.refox
Čo si myslíte, že sa vráti? Obaja f.refox a firefox sú vrátené, pretože obe zodpovedajú vzoru.
Ak chcete iba vrátiť f.refox, musíte uniknúť úplnej zastave, aby ste skutočne znamenali úplnú zastávku takto:
ls | grep f . refox
Spoločné meta-karantény a ich významy
| znak | zmysel |
| . | Každý znak |
| * | Nula alebo viac znakov |
| ^ | Zhodte ľubovoľný riadok alebo reťazec, ktorý začína vzorom (napr. Gnome) |
| $ | Zodpovedajúci ľubovoľný riadok alebo reťazec končiaci vzorom (tj gnome $) |
| Vynechá ďalší znak, aby odstránil svoj špeciálny význam | |
| Zhoda jedného zo zoznamu alebo rozsahu (tj "abc", "def" alebo 1..9 | |
| + | Zhoda jednej alebo viacerých predchádzajúcich (t.j. grep a +) |
| ? | Zhoda nula alebo jedna predchádza |













