Quando ci si riferisce a file (o directory) si possono usare caratteri ``jolly'':
carattere jolly | significato |
* | un qualunque numero di caratteri (anche nessuno) |
? | un solo carattere |
[abc] | un solo carattere tra quelli citati tra parentesi |
Esempi:
*.c | tutti i file che finiscono per .c |
/etc/* | tutti i file della directory /etc |
capitolo?.txt | capitolo1.txt capitolo2.txt ... (ma non capitolo23.txt) |
[ab]* | tutti file che cominciano per a o per b |
La shell verifica quali file corrispondono all'espressione indicata e li sostituisce pedissequamente nella riga di comando, che poi esegue
N.B. : questo comportamento è differente dal DOS!
Esempio: supponiamo che la directory corrente contenga i file
lettera.doc
memo.txt
riassunto.doc
CV.doc
cp *.doc ~/backup-dir
si traduce nel comando
cp lettera.doc riassunto.doc CV.doc ~/backup-dir
che copia i tre file nella directory ~/backup-dir
cp lettera.doc *.txt
diventacp lettera.doc memo.txtche copia il primo file nel secondo, distruggendolo!
NOTA: in DOS, il comando
copy lettera.doc *.txt
significa invece
copy lettera.doc lettera.txt