Dateien und Verzeichnisse Das Dateisystem - Inhalt Verzeichnisstruktur Inhalt Index


Jokerzeichen

Vorab sei darauf hingewiesen, dass einige der hier vorgestellten Suchmuster nur in der bash funktionieren.

Um sich nur Dateien mit einem bestimmten Namensmuster anzuschauen, verwendet man so genannte Jokerzeichen (Wildcards). Bevor wir uns Beispielen zuwenden, listen wir die Möglichkeiten zur Suchmusterangabe auf:

Muster Steht für...
? Genau ein beliebiges Zeichen
* Beliebig viele (auch 0) beliebige Zeichen
[def] Eines der Zeichen
[^czx] Keines der angegebenen Zeichen
[!czx] Wie oben
[a-f] Alle Zeichen aus dem Bereich
~ Steht (meist) für das Heimatverzeichnis

Beispiele

user@sonne> ls /boot/*.map
/boot/System.map

user@sonne> ls -d /?[abc]*
/sbin   /var

user@sonne> ls /?[abc]*
/sbin:
SuSEconfig   fsck.minix     ldconfig   rmmod
YaST        genksyms   lilo       route ...

/var:
X11R6   cron    lock   named     spool   texfonts
adm     games   log    openwin   squid   tmp
...

Betrachten wir folgendes Beispiel:

user@sonne> rm -r *~

Die Option -r weist das Kommando rm an, rekursiv in allen Unterverzeichnissen Backup-Dateien (Endung ~ ) zu löschen. Wir erwarten jetzt, dass tatsächlich auch in allen Unterverzeichnissen die Dateien entfernt wurden, stellen aber fest, dass dies nur im aktuellen Verzeichnis geschehen ist: Der Grund dafür ist die Shell, die für die Auflösung der Jokerzeichen verantwortlich ist. Die Shell betrachtet also nur *~ und findet entsprechende Muster nur im aktuellen Verzeichnis. rm bekommt also nur eine Liste dieser Dateien!

Genau aus diesem Grund funktioniert in Linux (im Unterschied zu DOS) ein Kommando wie

user@sonne> cp *.x *.y

niemals. Die Shell expandiert zwar alle *.x, kann aber *.y nicht auflösen und übergibt dieses unverändert an das Kommando cp, welches damit aber nichts anzufangen vermag.


Dateien und Verzeichnisse Das Dateisystem - Inhalt Verzeichnisstruktur Inhalt Index