10 praktičnih primjera korištenja zamjenskih znakova za podudaranje imena datoteka u Linuxu


Zamjenski znakovi (koji se nazivaju i meta znakovi) su simboli ili posebni znakovi koji predstavljaju druge znakove. Možete ih koristiti sa bilo kojom komandom kao što je naredba ls ili rm naredba za popis ili uklanjanje datoteka koje odgovaraju datim kriterijima, receptivno.

Pročitajte također: 10 korisnih praktičnih primjera ulančavanja operatora u Linuxu

Ove zamjenske znakove tumači ljuska i rezultati se vraćaju naredbi koju pokrenete. U Linuxu postoje tri glavna zamjenska znaka:

  • Zvjezdica (*) – odgovara jednom ili više pojavljivanja bilo kojeg znaka, uključujući nijedan znak.
  • Znak pitanja (?) – predstavlja ili odgovara jednom pojavljivanju bilo kojeg znaka.
  • Znakovi u zagradama ([ ]) – odgovara svakom pojavljivanju znaka zatvorenog u uglastim zagradama. Moguće je koristiti različite vrste znakova (alfanumeričkih znakova): brojeve, slova, druge posebne znakove itd.

Morate pažljivo odabrati koji zamjenski znak ćete koristiti za podudaranje s ispravnim imenima datoteka: moguće je i kombinirati sve njih u jednoj operaciji kao što je objašnjeno u primjerima ispod.

Kako uskladiti imena datoteka koristeći zamjenske znakove u Linuxu

Za potrebe ovog članka, koristit ćemo sljedeće datoteke da demonstriramo svaki primjer.

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

1. Ova komanda odgovara svim datotekama čiji nazivi počinju sa l (koji je prefiks) i završavaju sa jednim ili više pojavljivanja bilo kojeg znaka.

ls -l l*	

2. Ovaj primjer pokazuje drugu upotrebu * za kopiranje svih imena datoteka sa prefiksom users-0 i završavaju s jednim ili više pojavljivanja bilo kojeg znaka.

mkdir -p users-info
ls users-0*
mv -v users-0* users-info/	# Option -v flag enables verbose output

3. Sljedeća naredba odgovara svim datotekama čiji nazivi počinju sa l nakon čega slijedi bilo koji pojedinačni znak i završava sa st.sh (što je sufiks ).

ls l?st.sh	

4. Naredba u nastavku odgovara svim datotekama čiji nazivi počinju sa l nakon čega slijedi bilo koji od znakova u uglastim zagradama, ali koji završavaju sa st.sh .

ls l[abdcio]st.sh 

Kako kombinirati zamjenske znakove za podudaranje imena datoteka u Linuxu

Možete kombinirati zamjenske znakove da biste izgradili složene kriterije podudaranja imena datoteke kao što je opisano u sljedećim primjerima.

5. Ova komanda će odgovarati svim imenima datoteka sa prefiksom bilo koja dva znaka praćena st, ali završava se jednim ili više pojavljivanja bilo kojeg znaka.

ls
ls ??st*

6. Ovaj primjer odgovara nazivima fajlova koji počinju bilo kojim od ovih znakova [clst] i završavaju s jednim ili više pojavljivanja bilo kojeg znaka.

ls
ls [clst]*

7. U ovim primjerima, samo imena datoteka koja počinju bilo kojim od ovih znakova [clst] praćena jednim od ovih [io], a zatim bilo kojim pojedinačnim znak, nakon čega slijedi t i na kraju, jedno ili više pojavljivanja bilo kojeg znaka će biti na listi.

ls
ls [clst][io]?t*

8. Ovdje će biti uklonjeni nazivi datoteka s prefiksom jednog ili više pojavljivanja bilo kojeg znaka, nakon čega slijede slova tar i koji završavaju jednim ili više pojavljivanja bilo kojeg znaka.

ls
rm *tar*
ls

Kako uskladiti skup znakova u Linuxu

9. Pogledajmo sada kako odrediti skup znakova. Razmotrite imena datoteka u nastavku koja sadrže informacije o korisnicima sistema.

ls

users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

Ova komanda će odgovarati svim datotekama čije ime počinje sa users-i, nakon čega slijedi broj, malo slovo ili broj, zatim broj i završava se jednim ili više pojavljivanja bilo kojeg znaka.

ls users-[0-9][a-z0-9][0-9]*

Sljedeća komanda odgovara nazivima datoteka koji počinju sa users-i, nakon čega slijedi broj, malo ili veliko slovo ili broj, zatim broj i završava se jednim ili više pojavljivanja bilo kojeg znaka.

ls users-[0-9][a-zA-Z0-9][0-9]*

Ova naredba koja slijedi će odgovarati svim nazivima datoteka koji počinju sa users-i, nakon čega slijedi broj, malo ili veliko slovo ili broj, zatim malo ili veliko slovo i završava se jednim ili više pojavljivanja bilo kog karaktera.

ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Kako negirati skup znakova u Linuxu

10. Možete i negirati skup znakova pomoću simbola !. Sljedeća naredba navodi sve nazive fajlova koji počinju sa users-i, nakon čega slijedi broj, bilo koji važeći karakter naziva datoteke osim broja, zatim malo ili veliko slovo i završava se jednim ili više pojavljivanja bilo kojeg karakter.

ls users-[0-9][!0-9][a-zA-Z]*

To je sve za sada! Ako ste isprobali gornje primjere, sada biste trebali dobro razumjeti kako zamjenski znakovi funkcioniraju za podudaranje imena datoteka u Linuxu.

Možda biste željeli pročitati i ove sljedeće članke koji pokazuju primjere korištenja zamjenskih znakova u Linuxu:

  1. Kako izdvojiti Tar datoteke u određeni ili drugačiji direktorij u Linuxu
  2. 3 načina za brisanje svih datoteka u direktoriju osim jedne ili nekoliko datoteka s ekstenzijama
  3. 10 korisnih savjeta za pisanje učinkovitih Bash skripti u Linuxu
  4. Kako koristiti Awk i regularne izraze za filtriranje teksta ili niza u datotekama

Ako imate nešto za podijeliti ili postaviti pitanje, koristite obrazac za komentare ispod.