Un metacaracter (wildcard) este un simbol sau un set de simboluri care înlocuiesc alte caractere - sunt folosite, de regulă, pentru a lucra mai eficient cu fișierele.
În Linux întâlnim 3 clase de metacaractere:
? Semnul întrebării
Un semn de întrebare (?) poate înlocui un singur caracter. De exemplu, a??c poate însemna abac, aduc, apuc, avfc sau orice alt nume de fișier format din 4 caractere care începe cu a și se termină cu c. Semnul întrebării (?) poate înlocui atât litere mari, cât și litere mici.
* Asteriscul
Un asterisc (*) poate înlocui orice caracter sau set de caractere, chiar și niciun caracter - altfel spus, poate înlocui o secvență de caractere, de la zero la infinit.
De exemplu, a*c poate însemna abac, apuc, dar și ac, arc sau arsenic. În numele fișierului a*c poate fi orice caracter sau șir de caractere atât timp cât acesta începe cu a și se termină cu c.
[ ] Parantezele pătrate
Parantezele pătrate ([ ]) sunt folosite pentru a avea la dispoziție orice caracter dintr-un anume set de caractere. De exemplu, a[dp]uc poate însemna atât aduc, cât și apuc.
Fiecare pereche de paranteze pătrate este folosită pentru o potrivire cu un singur caracter. În exemplul de mai sus se observă că al doilea caracter din numele fișierului poate fi d sau p - în niciun caz altul.
Putem folosi mai multe perechi de paranteze pătrate: de exemplu, numele fișierului a[df]u[nm]at poate fi adunat, adumat, afunat sau afumat.
Este posibilă, de asemenea, specificarea unui interval de valori folosind parantezele pătrate. De exemplu, a[b-h]ac poate fi abac, acac, adac, aeac, afac, agac sau ahac - adică literele mici de la b la h, în niciun caz alte combinații.
Tot cu ajutorul parantezelor pătrate pot fi eliminate anumite caractere: a[!dp]uc înseamnă potrivire cu un singur caracter, cu excepția celor afișate (mai puțin d sau p).
Metacaracterele (wildcard-urile) sunt implementate în shell și pot fi folosite cu anumite comenzi de manipulare a fișierelor. De exemplu, dacă dăm comanda ls a??c
, rezultatul este precis și ne vor fi afișate strict fișierele care se potrivesc cerințelor noastre - apuc și aduc -, ca și cum am fi scris ls apuc aduc
.
Procesul de folosire a metacaracterelor este cunoscut sub denumirea de file globbing, filename expansion sau, mai simplu, globbing.
Ice Alinutza a zis
O întrebare vizavi de utilizarea wildcard-urilor: sunt logat ca utilizator și dau comanda "user@host ~ $ ls *.*". Această comandă nu-mi va afișa și fișierele "hidden"; cum fac să le văd folosind wildcard-urile?
Si încă o întrebare: wildcard-urile pot fi folosite pentru căutare în sistem și cu interfața grafică? De câte ori am folosit wildcard-urile așa nu am avut nici un rezultat...
Mulțumesc!
Bobses a zis
Fișierele ascunse le vezi cu ls -a
Wildcard-rile nu funcționează cu interfața grafică, fiind implementate în shell.