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


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

Pročitajte također: 10 korisnih praktičnih primjera lančanih operatora u Linuxu

Ove zamjenske znakove interpretira 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.
  • Upitnik (?) – predstavlja ili odgovara jednom pojavljivanju bilo kojeg znaka.
  • Znakovi u zagradama ([ ]) – odgovara svakom pojavljivanju znaka u uglastim zagradama. Moguće je koristiti različite vrste znakova (alfanumerički znakovi): brojke, slova, drugi posebni znakovi itd.

Morate pažljivo odabrati koji ćete zamjenski znak koristiti za podudaranje ispravnih naziva datoteka: također ih je moguće sve kombinirati u jednoj operaciji kao što je objašnjeno u primjerima u nastavku.

Kako uskladiti nazive datoteka pomoću zamjenskih znakova u Linuxu

U svrhu ovog članka, koristit ćemo sljedeće datoteke za demonstraciju svakog primjera.

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

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

ls -l l*	

2. Ovaj primjer pokazuje drugu upotrebu * za kopiranje svih naziva datoteka s prefiksom users-0 i završava 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 s l nakon čega slijedi bilo koji pojedinačni znak i završavaju s st.sh (što je sufiks ).

ls l?st.sh	

4. Naredba u nastavku odgovara svim datotekama čiji nazivi počinju s l iza kojeg slijede bilo koji od znakova u uglatim zagradama, ali završavaju s st.sh .

ls l[abdcio]st.sh 

Kako kombinirati zamjenske znakove za podudaranje naziva datoteka u Linuxu

Možete kombinirati zamjenske znakove za izradu složenih kriterija podudaranja imena datoteke kao što je opisano u sljedećim primjerima.

5. Ova naredba odgovara svim nazivima datoteka s bilo koja dva znaka iza kojih slijedi st, ali završava s jednim ili više znakova.

ls
ls ??st*

6. Ovaj primjer odgovara nazivima datoteka koji počinju s 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 nazivi datoteka koji počinju s bilo kojim od ovih znakova [clst] nakon čega slijedi jedan od ovih [io] i zatim bilo koji pojedinačni znak, iza kojeg slijedi t i na kraju će biti navedeno jedno ili više pojavljivanja bilo kojeg znaka.

ls
ls [clst][io]?t*

8. Ovdje će se ukloniti nazivi datoteka s prefiksom s jednim ili više pojavljivanja bilo kojeg znaka, iza kojih slijede slova tar i završavaju s jednim ili više pojavljivanja bilo kojeg znaka.

ls
rm *tar*
ls

Kako uskladiti skup znakova u Linuxu

9. Sada pogledajmo kako odrediti skup znakova. Razmotrite donje nazive datoteka koje sadrže informacije o korisnicima sustava.

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 naredba će odgovarati svim datotekama čije ime počinje s users-i, nakon čega slijedi broj, malo slovo ili broj, zatim broj i završava s jednim ili više pojavljivanja bilo kojeg znaka.

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

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

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

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

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

Kako negirati skup znakova u Linuxu

10. Također možete negirati skup znakova pomoću simbola !. Sljedeća naredba ispisuje sve nazive datoteka koji počinju s users-i, nakon čega slijedi broj, bilo koji valjani znak naziva datoteke osim broja, zatim malo ili veliko slovo i završava s jednim ili više pojavljivanja bilo kojeg lik.

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 naziva datoteka u Linuxu.

Također biste mogli pročitati sljedeće članke koji pokazuju primjere korištenja zamjenskih znakova u Linuxu:

  1. Kako izdvojiti Tar datoteke u određeni ili drugi 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, upotrijebite obrazac za komentare u nastavku.