10 exemples pràctics d'ús de comodins per fer coincidir els noms de fitxers a Linux


Els comodins (també coneguts com a meta caràcters) són símbols o caràcters especials que representen altres caràcters. Podeu utilitzar-los amb qualsevol ordre, com ara l'ordre ls o l'ordre rm per llistar o eliminar fitxers que coincideixen amb un criteri determinat, de manera receptiva.

Llegiu també: 10 exemples pràctics útils sobre encadenar operadors a Linux

Aquests comodins són interpretats pel shell i els resultats es retornen a l'ordre que executeu. Hi ha tres comodins principals a Linux:

  • Un asterisc (*): coincideix amb una o més ocurrències de qualsevol caràcter, inclòs cap caràcter.
  • Sign d'interrogació (?): representa o coincideix amb una única ocurrència de qualsevol caràcter.
  • Caràcters entre claudàtors ([ ]): coincideix amb qualsevol aparença de caràcters entre claudàtors. És possible utilitzar diferents tipus de caràcters (caràcters alfanumèrics): números, lletres, altres caràcters especials, etc.

Heu de triar amb cura quin comodí utilitzar per fer coincidir els noms de fitxer correctes: també és possible combinar-los tots en una sola operació, tal com s'explica als exemples següents.

Com fer coincidir els noms de fitxers mitjançant comodins a Linux

Als efectes d'aquest article, utilitzarem els fitxers següents per demostrar cada exemple.

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

1. Aquesta ordre fa coincidir tots els fitxers amb noms que comencen per l (que és el prefix) i acaben amb una o més ocurrències de qualsevol caràcter.

$ ls -l l*	

2. Aquest exemple mostra un altre ús de * per copiar tots els noms de fitxer amb el prefix users-0 i que acaben amb una o més ocurrències de qualsevol caràcter.

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

3. L'ordre següent coincideix amb tots els fitxers amb noms que comencen per l seguit de qualsevol caràcter i acaben amb st.sh (que és el sufix).

$ ls l?st.sh	

4. L'ordre següent coincideix amb tots els fitxers amb noms que comencen per l seguit de qualsevol dels caràcters entre claudàtors però que acaben amb st.sh.

$ ls l[abdcio]st.sh 

Com combinar els comodins per fer coincidir els noms de fitxers a Linux

Podeu combinar els comodins per crear un criteri de concordança de noms de fitxer complex, tal com es descriu als exemples següents.

5. Aquesta ordre coincidirà amb tots els noms de fitxer amb el prefix de dos caràcters seguits de st però acabant amb una o més ocurrències de qualsevol caràcter.

$ ls
$ ls ??st*

6. Aquest exemple coincideix amb els noms de fitxer que comencen amb qualsevol d'aquests caràcters [clst] i acaben amb una o més ocurrències de qualsevol caràcter.

$ ls
$ ls [clst]*

7. En aquests exemples, només els noms de fitxer que comencen amb qualsevol d'aquests caràcters [clst] seguit d'un d'aquests [io] i després qualsevol caràcter, seguit d'un t i, finalment, es llistaran una o més ocurrències de qualsevol caràcter.

$ ls
$ ls [clst][io]?t*

8. Aquí, s'eliminaran els noms de fitxer amb el prefix d'una o més aparició de qualsevol caràcter, seguides de les lletres tar i que acabin amb una o més aparició de qualsevol caràcter.

$ ls
$ rm *tar*
$ ls

Com fer coincidir els caràcters establerts a Linux

9. Vegem ara com especificar un conjunt de caràcters. Considereu els noms de fitxer següents que contenen informació dels usuaris del 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

Aquesta ordre coincidirà amb tots els fitxers el nom dels quals comenci per users-i, seguit d'un número, una lletra minúscula o un número, després un número i acaba amb una o més ocurrències de qualsevol caràcter.

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

La següent comanda coincideix amb els noms de fitxer que comencen per users-i, seguit d'un número, una lletra o un número en minúscula o majúscula, després un número i acaba amb una o més ocurrències de qualsevol caràcter.

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

Aquesta ordre que segueix coincidirà amb tots els noms de fitxer que comencen per users-i, seguit d'un número, una lletra o un número en minúscula o majúscula, després amb una lletra minúscula o majúscula i acaba amb una o més ocurrències de qualsevol personatge.

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

Com negar un conjunt de caràcters a Linux

10. També podeu negar un conjunt de caràcters utilitzant el símbol !. L'ordre següent enumera tots els noms de fitxer que comencen per users-i, seguit d'un número, qualsevol caràcter de nom de fitxer vàlid a part d'un número, després una lletra minúscula o majúscula i acaba amb una o més ocurrències de qualsevol personatge.

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

Això és tot per ara! Si heu provat els exemples anteriors, ara hauríeu de tenir una bona comprensió de com funcionen els comodins per fer coincidir els noms de fitxer a Linux.

També us agradaria llegir aquests articles següents que mostren exemples d'ús de comodins a Linux:

  1. Com extreure fitxers tar a un directori específic o diferent a Linux
  2. 3 maneres d'eliminar tots els fitxers d'un directori excepte un o pocs fitxers amb extensions
  3. 10 consells útils per escriure scripts Bash efectius a Linux
  4. Com utilitzar expressions Awk i regulars per filtrar text o cadena als fitxers

Si teniu alguna cosa a compartir o alguna pregunta a fer, feu servir el formulari de comentaris a continuació.