Metacaractere în sistemul Linux
în postările anterioare, am învățat următoarele :
- utilizați
pwd
pentru a găsi directorul nostru curent de lucru -
cd
pentru a intra într-un director -
ls
pentru a lista conținutul directorului -
file
pentru a determina conținutul unui fișier -
less
pentru a vizualiza conținutul fișierului text
acum, ceea ce pare să lipsească este cum putem manipula fișierele și directoarele/folderele.
dar înainte de a putea începe cu manipularea fișierelor și folderelor trebuie să știm altceva.
deoarece sistemul Linux folosește numele de fișier atât de mult încât ne oferă caractere speciale pentru a ne ajuta să specificăm rapid Grupuri de nume de fișiere. Aceste caractere speciale sunt numite metacaractere.
bine, metacaracterele par foarte utile, dar ce caractere reprezintă metacaractere și cum le folosim?
să ne uităm la toate metacaracterele care shell oferă curtoazie de „linia de comandă Linux”
bine, deci știm ce sunt metacaractere, să parcurgem câteva exemple pentru a înțelege utilizarea acestor metacaractere:
- listează toate fișierele care se termină cu .txt
în exemplul de mai sus, folosim mai întâi comanda ls
pentru a lista conținutul directorului și apoi, deoarece am dorit doar fișierele care se termină cu .txt
am folosit wildcard *
și am creat comanda ls *.txt
deci, să descompunem comanda
ls *.txt
unde*
se potrivește cu orice caracter și*.txt
înseamnă orice fișier care se termină cu .txt.
- lista toate .fișierele txt începinig cu f
în exemplul de mai sus, folosim mai întâi comanda ls *.txt
pentru a lista conținutul directorului cu „.txt ” în cele din urmă și apoi din moment ce am vrut doar fișierele și folderele care încep cu f
și se termină cu .txt
am folosit wildcard *
și am creat o comandă ls f*.txt
.
deci, să descompun comanda
ls f*.txt
unde f
specifică faptul că numele fișierului ar trebui să aibă un f
la început,*
specifică faptul că pot exista caractere între ele și.txt
înseamnă orice fișier care are .txt în cele din urmă.
- lista toate .fișiere txt care încep cu „textFile” și au exact 1 caracter după aceea. De exemplu textFile9.txt
în exemplul de mai sus, am enumerat mai întâi toate fișierele text din director folosind ls *.txt
și apoi am folosit wildcard ?
și am creat comanda ls textFile?.txt
pentru a filtra rezultatele conform cerințelor noastre
deci, să descompunem comanda
ls textFile?.txt
undetextFile
specifică faptul că fișierele ar trebui să înceapă cu „textfile”
o ?
după textFile
deoarece am vrut fișiere care au exact un caracter după „textfile”.txt
înseamnă orice fișier care are .txt în cele din urmă.
deci, în mod similar, dacă avem nevoie .fișierele txt care au început cu „someText” și au exact trei caractere după care vom crea comandals someText???.txt
acum ?
ne permite să fim generici cu filtrul nostru, adică reprezintă orice caracter unic, dar ce se întâmplă dacă vrem să filtrăm rezultatul nostru și mai mult
ce se întâmplă dacă am vrea să obținem doar fișierele și folderele care au numerele 2, 4 sau 6.
deci fișierul poate începe cu orice caracter și se poate termina cu orice caracter, dar ar trebui să conțină cel puțin unul dintre cele trei numere
în exemplul de mai sus, am folosit wildcard și am creat o comandă
ls **
pentru a obține rezultatele dorite.
deci, să descompun comanda
ls **
unde
*
reprezintă orice caracter
reprezintă că fișierul și folderele cu numărul 2 sau 4 sau 6
în mod similar, să aflăm
- fișierele și folderele care încep cu litera A sau b sau s
în exemplul de mai sus, am folosit wildcard și am creat o comandă
ls *
pentru a obține rezultatele dorite.
deci, să rupe în jos comanda
ls *
în cazul în care*
reprezintă orice caracter reprezintă că fișierul și folderele care încep fie cu a sau b sau s
bine asa ca pana acum am văzut utilizarea de metacaractere *
, ?
, și acum să ne uită-te la ce sunt metacaracterele de clasă și cum le folosim
tabelul de mai sus conține cele mai frecvent utilizate metacaractere de clasă. Acum, să luăm un exemplu pentru a înțelege utilizarea clasei wildcard.
- listează toate fișierele și folderele care nu se termină cu un număr
în exemplul de mai sus, am folosit wildcard ]
și am creat o comandă ls *]
pentru a obține rezultatele dorite.
deci, să descompun comanda
ls *]
unde*
reprezintă orice caracter!
reprezintă negația reprezintă orice număr
la fel ca exemplul de mai sus, putem folosi și celelalte clase
bine, deci asta e tot despre metacaractere, avem acum un instrument puternic în vârful degetelor noastre.
așa că am terminat cu metacaracterele în sistemul Linux și în următoarea parte, vom începe cu câteva comenzi foarte utile pentru manipularea fișierelor și folderelor din sistemul Linux.
sper că ați înțeles metacaracterele și utilizarea metacaracterelor în sistemul Linux. Vă rog, anunțați-mă dacă aveți întrebări.