10 esempi pratici di utilizzo dei caratteri jolly per abbinare i nomi dei file in Linux
I caratteri jolly (noti anche come metacaratteri) sono simboli o caratteri speciali che rappresentano altri caratteri. Puoi usarli con qualsiasi comando come il comando ls o il comando rm per elencare o rimuovere in modo ricettivo i file che corrispondono a un determinato criterio.
Leggi anche: 10 utili esempi pratici sul concatenamento di 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 racchiuso tra parentesi quadre. È possibile utilizzare diversi tipi di caratteri (caratteri alfanumerici): numeri, lettere, altri caratteri speciali ecc.
È necessario scegliere con attenzione quale carattere jolly utilizzare per abbinare i nomi file corretti: è anche possibile combinarli tutti in un'unica operazione come spiegato negli esempi seguenti.
Come abbinare i nomi dei file utilizzando i caratteri jolly in Linux
Ai fini di questo articolo, utilizzeremo i seguenti file per dimostrare ciascun 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 terminano con una o più occorrenze di qualsiasi carattere.
ls -l l*
2. Questo esempio mostra un altro utilizzo di *
per copiare tutti i nomi di file con il prefisso users-0
e che terminano 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 corrisponde a tutti i file con nomi che iniziano con l
seguito da qualsiasi singolo carattere e terminano con st.sh
(che è il suffisso ).
ls l?st.sh
4. Il comando seguente corrisponde a tutti i file con nomi che iniziano con l
seguito da uno qualsiasi dei caratteri tra parentesi quadre ma terminano con st.sh
.
ls l[abdcio]st.sh
Come combinare i caratteri jolly per abbinare i nomi dei file in Linux
È possibile combinare i caratteri jolly per creare criteri di corrispondenza dei nomi file complessi come descritto negli esempi seguenti.
5. Questo comando corrisponderà a tutti i nomi di file con il prefisso di due caratteri qualsiasi seguiti da st
ma che terminano con una o più occorrenze di qualsiasi carattere.
ls
ls ??st*
6. Questo esempio corrisponde ai nomi di file che iniziano con uno qualsiasi di questi caratteri [clst]
e terminano 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 quindi qualsiasi singolo carattere, seguito da una t
e infine verranno elencate una o più occorrenze di qualsiasi carattere.
ls
ls [clst][io]?t*
8. Qui, i nomi dei file con il prefisso con una o più occorrenze di qualsiasi carattere, seguiti dalle lettere tar
e che terminano con una o più occorrenze di qualsiasi carattere verranno rimossi.
ls
rm *tar*
ls
Come abbinare i caratteri impostati in Linux
9. Ora vediamo come specificare un set di caratteri. Considera i nomi dei file seguenti 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]*
Il comando che segue corrisponderà a tutti i nomi di file che iniziano con users-i
, seguito da un numero, una lettera o un numero minuscolo o maiuscolo, 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 set di caratteri utilizzando il simbolo !
. Il comando seguente elenca tutti i nomi di file che iniziano con users-i
, seguito da un numero, qualsiasi carattere valido per la denominazione dei file tranne un numero, quindi una lettera maiuscola o minuscola 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 conoscenza di come funzionano i caratteri jolly per abbinare i nomi dei file in Linux.
Potrebbe interessarti anche leggere i seguenti articoli che mostrano esempi di utilizzo dei 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 domanda da porre, utilizza il modulo dei commenti qui sotto.