Caratteri jolly (indicati anche come meta caratteri) sono simboli o caratteri speciali che rappresentano altri caratteri. Puoi usarli con qualsiasi comando come ls command o rm command per elencare o rimuovere file che corrispondono a un determinato criterio, in modo ricettivo.
Leggi anche:10 utili esempi pratici sul concatenamento degli operatori in Linux
Questi caratteri jolly vengono interpretati dalla shell e i risultati vengono restituiti al comando eseguito. Ci sono tre caratteri jolly principali in Linux:
- Un asterisco
(*)
– corrisponde a una o più occorrenze di qualsiasi carattere, incluso nessun carattere. - Punto interrogativo
(?)
– rappresenta o corrisponde a una singola occorrenza di qualsiasi carattere. - Caratteri tra parentesi
([ ])
– corrisponde a qualsiasi occorrenza di carattere racchiusa tra parentesi quadre. È possibile utilizzare diversi tipi di caratteri (caratteri alfanumerici):numeri, lettere, altri caratteri speciali ecc.
È necessario scegliere con cura quale carattere jolly utilizzare per abbinare i nomi di file corretti:è anche possibile combinarli tutti in un'unica operazione come spiegato negli esempi seguenti.
Come abbinare i nomi dei file usando i caratteri jolly in Linux
Ai fini di questo articolo, utilizzeremo i seguenti file per dimostrare ogni esempio.
createbackup.sh list.sh lspace.sh speaker.sh listopen.sh lost.sh rename-files.sh topprocs.sh
1. Questo comando abbina tutti i file con nomi che iniziano con l
(che è il prefisso) e termina con una o più occorrenze di qualsiasi carattere.
$ ls -l l*
2. Questo esempio mostra un altro uso di *
per copiare tutti i nomi di file preceduti da users-0
e termina con una o più occorrenze di qualsiasi carattere.
$ mkdir -p users-info $ ls users-0* $ mv -v users-0* users-info/ # Option -v flag enables verbose output
3. Il comando seguente abbina tutti i file con nomi che iniziano con l
seguito da qualsiasi singolo carattere e termina con st.sh
(che è il suffisso).
$ ls l?st.sh
4. Il comando seguente abbina tutti i file con nomi che iniziano con l
seguito da uno qualsiasi dei caratteri tra parentesi quadre ma che termina con st.sh
.
$ ls l[abdcio]st.sh
Come combinare caratteri jolly per abbinare nomi di file in Linux
Puoi combinare i caratteri jolly per creare un nome file complesso che corrisponda a criteri come descritto negli esempi seguenti.
5. Questo comando corrisponderà a tutti i nomi di file preceduti da due caratteri qualsiasi seguiti da st
ma termina con una o più occorrenze di qualsiasi carattere.
$ ls $ ls ??st*
6. Questo esempio corrisponde a nomi di file che iniziano con uno qualsiasi di questi caratteri [clst]
e termina con una o più occorrenze di qualsiasi carattere.
$ ls $ ls [clst]*
7. In questi esempi, solo i nomi di file che iniziano con uno qualsiasi di questi caratteri [clst]
seguito da uno di questi [io]
e poi ogni singolo carattere, seguito da un t
e infine, verrà elencata una o più occorrenze di qualsiasi carattere.
$ ls $ ls [clst][io]?t*
8. Qui, i nomi dei file sono preceduti da una o più occorrenze di qualsiasi carattere, seguiti dalle lettere tar
e che termina con una o più occorrenze di qualsiasi carattere verranno rimossi.
$ ls $ rm *tar* $ ls
Come abbinare i caratteri impostati in Linux
9. Vediamo ora come specificare un insieme di caratteri. Considera i nomi di file di seguito contenenti informazioni sugli utenti 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
Questo comando corrisponderà a tutti i file il cui nome inizia con users-i
, seguito da un numero, una lettera minuscola o un numero, quindi un numero e termina con una o più occorrenze di qualsiasi carattere.
$ ls users-[0-9][a-z0-9][0-9]*
Il comando successivo corrisponde ai nomi di file che iniziano con users-i
, seguito da un numero, una lettera o un numero minuscolo o maiuscolo, quindi un numero e termina con una o più occorrenze di qualsiasi carattere.
$ ls users-[0-9][a-zA-Z0-9][0-9]*
Questo comando che segue corrisponderà a tutti i nomi di file che iniziano con users-i
, seguito da un numero, una lettera minuscola o maiuscola o un numero, quindi una lettera minuscola o maiuscola e termina con una o più occorrenze di qualsiasi carattere.
$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*
Come negare un set di caratteri in Linux
10. Puoi anche negare un insieme di caratteri usando il !
simbolo. Il comando seguente elenca tutti i nomi di file che iniziano con users-i
, seguito da un numero, qualsiasi carattere di denominazione file valido a parte un numero, quindi una lettera minuscola o maiuscola e termina con una o più occorrenze di qualsiasi carattere.
$ ls users-[0-9][!0-9][a-zA-Z]*
È tutto per ora! Se hai provato gli esempi precedenti, ora dovresti avere una buona comprensione di come funzionano i caratteri jolly per abbinare i nomi dei file in Linux.
Potresti anche leggere questi articoli seguenti che mostrano esempi di utilizzo di caratteri jolly in Linux:
- Come estrarre file Tar in directory specifiche o diverse in Linux
- 3 modi per eliminare tutti i file in una directory tranne uno o pochi file con estensioni
- 10 suggerimenti utili per scrivere script Bash efficaci in Linux
- Come utilizzare Awk e le espressioni regolari per filtrare testo o stringhe nei file
Se hai qualcosa da condividere o una o più domande da porre, utilizza il modulo per i commenti qui sotto.