<Precedenti | Contenuti | Succ.>
Espansione del nome del percorso
Il meccanismo con cui funzionano i caratteri jolly è chiamato espansione del percorsoSe proviamo alcune delle tecniche impiegate nei capitoli precedenti, scopriremo che si tratta in realtà di espansioni. Data una directory home che si presenta così:
[io@linuxbox~]$ ls | ||
Desktop ls-output.txt | Immagini | Modelli |
Documenti Musica | Pubblico | Video |
potremmo effettuare le seguenti espansioni:
[io@linuxbox~]$ eco D*
Documenti desktop
[io@linuxbox~]$ eco D*
Documenti desktop
e:
[io@linuxbox~]$ eco *s
Documenti Immagini Modelli Video
[io@linuxbox~]$ eco *s
Documenti Immagini Modelli Video
o anche:
[io@linuxbox~]$ eco [[:superiore:]]*
Documenti Desktop Musica Immagini Modelli Pubblici Video
[io@linuxbox~]$ eco [[:superiore:]]*
Documenti Desktop Musica Immagini Modelli Pubblici Video
e guardando oltre la nostra home directory:
[io@linuxbox~]$ echo /usr/*/share
/usr/kerberos/share /usr/local/share
[io@linuxbox~]$ echo /usr/*/share
/usr/kerberos/share /usr/local/share
Espansione del percorso dei file nascosti
Come sappiamo, i nomi di file che iniziano con un punto sono nascosti. Anche l'espansione del percorso rispetta questo comportamento. Un'espansione come:
eco *
non rivela i file nascosti.
A prima vista potrebbe sembrare che potremmo includere file nascosti in un'espansione iniziando il modello con un punto iniziale, in questo modo:
eco .*
Funziona quasi. Tuttavia, se esaminiamo attentamente i risultati, vedremo che anche i nomi "." e ".." appariranno nei risultati. Poiché questi nomi si riferiscono alla directory di lavoro corrente e alla sua directory padre, l'utilizzo di questo schema probabilmente produrrà un risultato errato. Possiamo verificarlo provando il comando:
ls -d .* | meno
Per eseguire al meglio l'espansione del percorso in questa situazione, dobbiamo utilizzare un modello più specifico:
eco .[!.]*
Questo schema si estende a ogni nome di file che inizia con un punto, non include un secondo punto ed è seguito da altri caratteri. Funzionerà correttamente con la maggior parte dei file nascosti (anche se non includerà comunque nomi di file con più punti iniziali). ls comando con il -A l'opzione ("quasi tutti") fornirà un elenco corretto dei file nascosti:
ls -A