Lær Linux

Jokertegn i Linux forklaret med 10 eksempler

Jokertegn i Linux forklaret med 10 eksempler

Jokertegn, en.k.-en. metategn, er en gave, når det kommer til at søge efter bestemte filnavne fra en bunke med lignende navngivne filer. For eksempel kan du bruge Wildcards i Linux ls kommando,  rm kommando eller enhver anden Linux-kommando for den sags skyld på flere filer, så længe de matcher de definerede kriterier.

I denne læsning vil vi diskutere, hvordan du kan bruge jokertegn i Linux til at strømline din arbejdsgang og blive mere produktiv. Men lad os først se hurtigt på de mest kraftfulde og almindeligt anvendte jokertegn i Linux:

  1. Stjernen (*): Det (*) wildcard repræsenterer et vilkårligt antal ukendte tegn. Dette er nyttigt, når du søger efter dokumenter eller filer, men kun husker en del af navnet.
  2. Spørgsmålstegnet (?): Det (?) wildcard repræsenterer kun et ukendt tegn. Dette er nyttigt, når du har en liste med lignende navngivne filer og er usikker på nogle få tegn.
  3. De parenteserede tegn ([]): Det ([]) jokertegn - den tredje parentes og ikke den første parentes - bruges til at matche enhver forekomst af tegn, der er defineret inden for parenteserne. Denne indstilling er praktisk, når du beskæftiger dig med store og små filer, som vi vil se senere.

Nu er jeg klar over, at alle disse oplysninger ikke giver mening, hvis du aldrig har behandlet wildcards før. For at hjælpe dig med at fjerne din forvirring har vi dog sammensat en detaljeret guide, der inkluderer 10 eksempler, for at sikre dig, at du korrekt forstår funktionen af ​​jokertegn og begynder at bruge dem selv.

Eksempler på matchende filnavne ved hjælp af jokertegn

For at starte, lad os bruge alle de forskellige wildcards, vi diskuterede tidligere, og se hvordan man bruger dem til at matche filnavne. For at gøre dette bruger vi følgende sæt filer:

  1. Denne kommando matcher alle filnavne, der starter med bogstavet M og slutter med en eller flere forekomster af enhver karakter.
$ ls -l M *

Produktion:

Bemærk, hvordan det kun matcher filerne, der starter med store bogstaver “M” og ikke små bogstaver 'm'. 

2. Denne kommando kopierer alle filnavne startende med My-Data og slutter med en eller flere forekomster af enhver karakter.

$ ls My-Data *

Produktion:

3. Denne kommando matcher alle filer, der starter med bogstavet M, slutter med brevet N, og har et hvilket som helst 1 tegn imellem.

$ ls M?N.sh

Produktion:

4. Denne kommando matcher alle filer, der starter med bogstavet M, slutter med brevet N, men kun med 1 tegn imellem hører til listen over tegn defineret inden for firkantede parenteser [AEIOU].

$ ls M [AEIOU] N.sh

Produktion:

4 eksempler på kombination af forskellige jokertegn for at matche filnavne

For at turboladere din effektivitet kan du blande og matche disse jokertegn for at arbejde sammen og være mere effektive til at matche filnavne.

  1. Her er en kommando, der hjælper dig med at finde ethvert filnavn, der kan have 3 tegn (inklusive ingen tegn) efterfulgt af kage og slutter med en eller flere forekomster af enhver karakter.
$ ls ???kage*

Produktion:

2. Her er en kommando, der matcher alle filnavne, der starter med et af disse tegn i firkantede parenteser [MNLOP] og slutter med en eller flere forekomster af enhver karakter.

Lad os også se, hvad der sker, når vi udskifter [MNLOP] med [mnlop].

Så de kommandoer, vi vil bruge, er:

$ ls [MNLOP] *
$ ls [mnlop] *

Produktion:

Som du kan se, skal du være opmærksom på store og små bogstaver i bogstavet, da det vil påvirke resultatet.

3. Her er en kommando, der matcher alle filnavne med et af disse tegn [MNLOP] som den første, nogen af ​​disse tegn [AEIOU] som den anden, efterfulgt af N, og til sidst ender med en eller flere forekomster af enhver karakter.

$ ls [MNLOP] [AEIOU] N *

Produktion:

Bemærk hvordan (*) wildcard hjælper kun med at finde alle udvidelser af filnavne.4.

Her er en kommando, der matcher alle filnavne, der starter med en eller flere forekomster af enhver karakter, der fører til M, efterfulgt af et hvilket som helst 1 tegn, derefter efterfulgt af N, og slutter derefter med en eller flere forekomster af enhver karakter.

$ ls * M?N *

Produktion:

Brug af jokertegn til at matche tegnsæt

Nu skal du have en forståelse af, hvordan wildcards fungerer. Vi kan nu fokusere på nogle tilfælde med avanceret brug, hvor jokertegn er uvurderlige.

F.eks beslag wildcard giver dig mulighed for at definere en række tegn ved hjælp af [-] i stedet for at skrive hvert tegn ud. Dette kan være yderst nyttigt, når du vil specificere et sæt tegn og matche filnavne baseret på hvor tegnene vises. 

For at gøre dette bruger vi følgende sæt filer, som vist på billedet:

Som du kan se, er det billede, vi har oprettet, en liste over filer, der indeholder forskellige Pokemon-data.

Nu for at finde alle filnavne, der starter med pokemon- efterfulgt af et tal, derefter ethvert alfanumerisk tegn, igen efterfulgt af et tal, og derefter ender med en eller flere forekomster af et hvilket som helst tegn, kan vi bruge følgende kommando:

$ ls pokemon- [0-9] [0-9a-zA-Z] [0-9] *

Produktion:

Den del [0-9] repræsenterer alle numeriske tegn mellem 0 til 9

Den næste del [0-9a-zA-Z] repræsenterer et hvilket som helst antal tegn mellem 0 til 9, eller et lille bogstav mellem -en til z, eller et stort bogstav mellem EN til Z.

Som sådan, hvis vi slukker [0-9a-zA-Z] med [0-9a-z], du kan se, at resultatet ikke inkluderer noget filnavn med store bogstaver i den udpegede position.

$ ls pokemon- [0-9] [0-9a-z] [0-9] *

Produktion:

Brug af jokertegn til at negere et sæt tegn

Ligesom du kan angive et sæt tegn, kan du også negere et sæt tegn, mens du matcher til filnavne. Her er et eksempel på, hvordan det gøres:

$ ls pokemon- [0-9] [!a-z] [0-9] *

Produktion:

Dette matcher alle filnavne, der starter med pokemon- efterfulgt af et hvilket som helst numerisk tegn, derefter af et hvilket som helst andet tegn end små bogstaver, efterfulgt af et hvilket som helst numerisk tegn, og til sidst ender med en eller flere forekomster af et hvilket som helst tegn.

Ved brug af [!a-z], vi benægter sættet med alle små bogstaver. Nu matches filnavne for ethvert tegn, der ikke er med små bogstaver.

Afslutter

Så det bringer os til slutningen af ​​vores hurtige kig på Linux wildcards og hvordan man bruger dem. Opsummerer alt i en nøddeskal, the stjerne (*) wildcard er mest nyttigt, når du kender filnavnet, men ikke udvidelsen. Det spørgsmålstegn (?) wildcard kan hjælpe dig, hvis du glemmer et par filnavnetegn. Det beslag ([]) wildcard er nyttigt, når du vil indeholde din søgning inden for et sæt definerede tegn.

Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...