3 581
contributi
S3v (discussione | contributi) mNessun oggetto della modifica |
|||
(3 versioni intermedie di 2 utenti non mostrate) | |||
Riga 8: | Riga 8: | ||
== Espansione di tilde == | == Espansione di tilde == | ||
<!-- | |||
Nota: *NON* modificare il nome della sezione, perché è usato in un'altra guida | |||
--> | |||
Sintassi: | Sintassi: | ||
* <code>~</code> (per digitarlo con tastiera con layout italiano: <code> | * <code>~</code> (per digitarlo con tastiera con layout italiano: <code>Alt-Gr+ì</code>) si espande alla home, se non è quotata (equivalente all'uso di ${HOME}, che può essere quotata); | ||
* <code>~utente</code> si espande alla home di un dato utente, se esiste, ma la stringa non può essere quotata né essere una variabile. | * <code>~utente</code> si espande alla home di un dato utente, se esiste, ma la stringa non può essere quotata né essere una variabile. | ||
Riga 94: | Riga 97: | ||
* <code>./*/</code> espande a tutte le directory non nascoste; | * <code>./*/</code> espande a tutte le directory non nascoste; | ||
* <code>./[a-zA-Z]*</code> espande a tutti i file inizianti con una lettera qualsiasi; | * <code>./[a-zA-Z]*</code> espande a tutti i file inizianti con una lettera qualsiasi; | ||
* <code>./[[:alpha:]]*</code> equivalente a sopra; | * <code>./<nowiki>[[:alpha:]]</nowiki>*</code> equivalente a sopra; | ||
* <code>./[[:word:]]*</code> espande a tutti i file inizianti con lettere maiuscole, minuscole, numeri e underscore; | * <code>./<nowiki>[[:word:]]</nowiki>*</code> espande a tutti i file inizianti con lettere maiuscole, minuscole, numeri e underscore; | ||
* <code>./.*</code> espande a tutti i file nascosti ('''ATTENZIONE:''' comprese "'''.'''" e "'''..'''", ossia directory corrente e superiore); | * <code>./.*</code> espande a tutti i file nascosti ('''ATTENZIONE:''' comprese "'''.'''" e "'''..'''", ossia directory corrente e superiore); | ||
* <code>./.[!.]*</code> espande a tutti i file nascosti di almeno due caratteri in cui il secondo non è un punto (non espande a '''.''' e '''..''', ma nemmeno a possibili file nascosti inizianti con '''..'''); | * <code>./.[!.]*</code> espande a tutti i file nascosti di almeno due caratteri in cui il secondo non è un punto (non espande a '''.''' e '''..''', ma nemmeno a possibili file nascosti inizianti con '''..'''); | ||
Riga 109: | Riga 112: | ||
fi | fi | ||
done</pre> | done</pre> | ||
Il pattern <code>*</code> è l'unico in grado di sostituire un numero qualsiasi di caratteri (zero o più), mentre <code>?</code> e le classi sempre e soltanto un singolo carattere. Si faccia attenzione però che tutti i pattern, e non solo quelli composti da <code>*</code>, possono generare liste di percorsi, in presenza di fili multipli con lo stesso prefisso e/o suffisso. Per esempio il pattern '''./a?c''' può espandersi alla lista ''./abc ./aBC ./acc'', se esistono questi tre file nella directory corrente (e nessun altro di tre caratteri che inizi con '''a''' e termini con '''c'''). | Il pattern <code>*</code> è l'unico in grado di sostituire un numero qualsiasi di caratteri (zero o più), mentre <code>?</code> e le classi sempre e soltanto un singolo carattere. Si faccia attenzione però che tutti i pattern, e non solo quelli composti da <code>*</code>, possono generare liste di percorsi, in presenza di fili multipli con lo stesso prefisso e/o suffisso. Per esempio il pattern '''./a?c''' può espandersi alla lista ''./abc ./aBC ./acc'', se esistono questi tre file nella directory corrente (e nessun altro di tre caratteri che inizi con '''a''' e termini con '''c'''). | ||
=== Espansione di percorso con nuovi file === | === Espansione di percorso con nuovi file === | ||
Riga 222: | Riga 225: | ||
=== Differenze con l'espansione di percorso === | === Differenze con l'espansione di percorso === | ||
L'espansione di parentesi graffe: | L'espansione di parentesi graffe: | ||
* non è | * non è [[POSIX]], mentre l'espansione di percorso sì; | ||
* espande delle stringhe, non ha importanza a cosa si riferiscono, mentre l'espansione di percorso si espande solo a percorsi esistenti (al tempo dell'espansione, ossia prima dell'esecuzione del comando); | * espande delle stringhe, non ha importanza a cosa si riferiscono, mentre l'espansione di percorso si espande solo a percorsi esistenti (al tempo dell'espansione, ossia prima dell'esecuzione del comando); | ||
* avviene per prima e può contenere altre espansioni (anche quotate, purché non siano quotate le graffe e le virgole), mentre l'espansione di percorso avviene per ultima e può solo essere il risultato di altre espansioni (se non quotate); | * avviene per prima e può contenere altre espansioni (anche quotate, purché non siano quotate le graffe e le virgole), mentre l'espansione di percorso avviene per ultima e può solo essere il risultato di altre espansioni (se non quotate); |
contributi