Wenn diese Jokerzeichen eingesetzt werden, gibt die Shell nicht einen einzelnen Dateinamen zurück, sondern eine Liste von Dateinamen, auf die das Muster zutrifft. So erhalten Sie mit dem Muster *.jpg eine Liste aller Dateinamen, die mit .jpg enden.
tapico@defiant:~> echo *.jpg helm35.jpg helm37.jpg helm38a.jpg helm59.jpg tapico@defiant:~> cp *.jpg ~/bilder
Denken Sie daran. Die Shell und nicht der Befehl interpretiert das Kommando. Deshalb müssen die Jokerzeichen in manchen Fällen maskiert werden, damit sie unbeschadet an den Befehl übergeben werden können. Probieren Sie den unteren Befehl mal ohne Backslash aus.
tapico@defiant:~> echo \* Hallo \* * Hallo *
Eine Reihe von Jokerzeichen steht Ihnen zur Verfügung.
tapico@defiant:~> ls lk* lk-aufbau-ext2.eps lk-shell.aux lk.log lk-dateibaum.eps lk-shell.tex lk.pdf.gz lk-dateisystem.aux lk-shell.tex.bck lk.ps lk-dateisystem.tex lk-vorwort.aux lk.tex lk-dateisystem.tex.bck lk-vorwort.tex lk.tex.bck lk-installation.aux lk-vorwort.tex.bck lk.toc lk-installation.tex lk.aux lktex lk-installation.tex.bck lk.dvi
tapico@defiant:~> ls lk.* lk.aux lk.idx lk.ind lk.pdf.gz lk.tex lk.toc lk.dvi lk.ilg lk.log lk.ps lk.tex.bck tapico@defiant:~> ls lk.??? lk.aux lk.dvi lk.idx lk.ilg lk.ind lk.log lk.tex lk.toc tapico@defiant:~> ls lk.?? lk.ps
[Aa]
für ein Zeichen, daß entweder ein großes oder ein kleines A sein kann. Ein Ausrufezeichen in der eckigen Klammer negiert die Bedeutung der Menge. So steht [!aeiou]
für ein Zeichen, daß kein Vokal ist.
Innerhalb der Klammern können nicht nur einzelne Zeichen angegeben werden, sondern auch Bereiche. So steht z. B. [a-z]
für alle Kleinbuchstaben und [0-9]
für alle Zahlen.
tapico@defiant:~> ls lk.??? lk.aux lk.dvi lk.idx lk.ilg lk.ind lk.log lk.tex lk.toc tapico@defiant:~> ls lk.[it]?? lk.idx lk.ilg lk.ind lk.tex lk.toc tapico@defiant:~> ls lk.[!it]?? lk.aux lk.dvi lk.log tapico@defiant:~> ls [Hh]* Home.txt Hurra.jpg hans.txt himmel.jpg tapico@defiant:~> ls [A-Z]* Amerika.jpg Home.txt Hurra.jpg Qualle.jpg tapico@defiant:~> ls *[0-9][0-9].jpg helm35.jpg helm37.jpg helm38.jpg helm59.jpg
tapico@defiant:~> echo "Ich bin "{gut,besser,super}"." Ich bin gut. Ich bin besser. Ich bin super. tapico@defiant:~> echo {1,2,3}{1,2,3} 11 12 13 21 22 23 31 32 33
Trotzdem können Sie die Klammerexpansion natürlich auch auf Dateioperationen anwenden.
tapico@defiant:~> ls lk-{kernel,shell}.* lk-kernel.aux lk-kernel.tex.bck lk-shell.tex lk-kernel.tex lk-shell.aux lk-shell.tex.bck tapico@defiant:~> ls lk-*.{tex,eps} lk-administration.tex lk-dateibaum.eps lk-installation.tex lk-shell.tex lk-aufbau-ext2.eps lk-dateisystem.tex lk-kernel.tex lk-vorwort.tex