Metacaractere în sistemul Linux

în postările anterioare, am învățat următoarele :

  1. utilizați pwd pentru a găsi directorul nostru curent de lucru
  2. cd pentru a intra într-un director
  3. ls pentru a lista conținutul directorului
  4. file pentru a determina conținutul unui fișier
  5. 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”

metacaractere

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

star wildcard

î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

wildcard-star-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*.txtunde
f specifică faptul că numele fișierului ar trebui să aibă un fla î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

întrebare wildcard

î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 unde
textFile 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 comanda
ls 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

suport wildcard

î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

suport de comandă abs

î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

comenzi de clasă metacaractere

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

clasa wildcard digit

î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.