Binoclurile puternice de bash în Linux

Jokerurile puternice bash - 2.0

Fără aceste lucruri minunate numite wildcards shell, lucrul pe linia de comandă Linux este destul de dureros. Deci, asigurați-vă că puneți caracterele sălbatice în uz.

Ce sunt caracterele wild >

metacaractere sunt o caracteristică shell care face linia de comandă mult mai puternică decât orice manager de fișiere GUI. Vedeți, dacă doriți să selectați un grup mare de fișiere într-un manager de fișiere grafic, de obicei trebuie să le selectați cu mouse-ul. Acest lucru poate părea simplu, dar în unele cazuri poate fi foarte frustrant. De exemplu, să presupunem că aveți un director cu o cantitate imensă de tot felul de fișiere și subdirectoare și decideți să mutați toate fișierele HTML, care au cuvântul „linux” undeva în mijlocul numelor lor, din acel director mare în alt director. Care este un mod simplu de a face acest lucru? Dacă directorul conține o cantitate imensă de fișiere HTML denumite în mod diferit, sarcina dvs. este totul în afară de simplă!

În CLI-ul Linux, această sarcină este la fel de simplă de realizat ca mutarea unui singur fișier HTML și este atât de ușoară din cauza coșul de salvare. Comerciile sunt caractere speciale care vă permit să selectați nume de fișiere care se potrivesc anumitor tipare de caractere. Acest lucru vă ajută să selectați chiar și un grup mare de fișiere, tastând doar câteva caractere și, în majoritatea cazurilor, este mai ușor decât selectarea fișierelor cu mouse-ul.

Iată o listă cu cele mai frecvent utilizate metacaractere din bash:

wildcard Meciuri
* zero sau mai multe caractere
? exact un caracter
[Abcde] exact un caracter enumerat
[Ae] exact un caracter din intervalul dat
[! ABCDE] orice personaj care nu este listat
[! Ae] orice personaj care nu este în intervalul dat
{Debian, linux} exact un cuvânt întreg în opțiunile date

Puteți utiliza metacaractere cu orice comandă care acceptă numele de fișiere ca argumente.

 

Exemple de exemplificări >

Să avem câteva exemple. Probabil că caracterul * vă este deja familiar, deoarece este utilizat pe scară largă și în multe alte locuri, nu doar în Linux. De exemplu, următoarele elimină fiecare fișier din directorul curent:
rm *

Următoarea comandă mută toate fișierele HTML care au cuvântul „linux” în numele lor, din directorul de lucru într-un director numit dir1:
mv *linux*.html dir1

V-am spus că mișcarea mai multor fișiere poate fi la fel de simplă ca mișcarea unui singur fișier!

Următoarele afișează toate fișierele care încep cu d și se termină cu .txt:
less d*.txt

Următoarea comandă elimină toate fișierele ale căror nume încep cu junk., urmat de exact trei caractere:
rm junk.???

Cu această comandă se afișează toate fișierele sau directoarele ale căror nume încep cu hda, urmată de exact o cifră:
ls hda[0-9]

Aceasta afișează toate fișierele sau directoarele care încep cu hda, urmată de exact două cifre:
ls hda[0-9][0-9]

Următoarele listează toate fișierele sau directoarele ale căror nume încep cu oricare dintre acestea hd or sd, urmată de un singur caracter între a și c:
ls {hd,sd}[a-c]

Această comandă copiază toate fișierele, care încep cu o literă mare, în director dir2:
cp [A-Z]* dir2

Aceasta șterge toate fișierele care nu se termină cu ceh or g:
rm *[!cehg]

Aș putea continua și continua cu aceste exemple, dar veți obține ideea. Puteți utiliza modele simple sau combinați diferite metacaractere și construiți modele complexe și, așa cum am spus mai înainte, le puteți folosi cu orice comenzi care acceptă numele de fișiere ca argumente.