Mandrake Linux 8.2: Referenz | ||
---|---|---|
Zurück | Kapitel 2. Die Kommandozeile | Nach vorne |
Sie benutzen Suchmuster vermutlich schon, ohne sich dessen bewusst zu sein. Wenn Sie etwa unter Windows nach einer Datei suchen, verwenden Sie *, um eine Zeichenkette zu erfassen. *.txt beispielsweise passt auf alle Dateien, deren Name auf .txt endet. Suchmuster wurden auch bereits in den vorhergehenden Kapiteln eingesetzt. Doch es gibt mehr Platzhalter als nur *.
Wenn Sie einen Befehl wie ls *.txt eingeben und Eingabe drücken, wird die Suche nach passenden Dateien nicht von ls durchgeführt, sondern von der Shell selbst. Kommandos werden nämlich folgendermaßen interpretiert:
$ ls *.txt readme.txt rezepte.txt |
Die Kommandozeile wird von der Shell zuerst in ihre Bestandteile zerlegt (hier: ls und *.txt). Sieht sie * in einem Bestandteil, interpretiert sie die Zeichenkette als Suchmuster und ersetzt sie durch alle in Frage kommenden Dateinamen (etwa ls readme.txt rezept.txt) und führt dann den eigentlichen Befehl (hier: ls) aus. Einige andere Zeichen haben ebenfalls eine besondere Bedeutung:
?: vertritt genau ein Zeichen;
[...]: Ein Platzhalter für genau ein Zeichen das in den Klammern vorkommenden. Zeichen können als Bereich (etwa 1-9), diskrete Werte oder gar als beides angegeben werden. Hier ein Beispiel: [a-zBE5-7] deckt folgende Zeichen ab: a bis z, ein B, ein E oder eine 5 bis 7;
[!...]: vertritt jedes Zeichen, welches nicht in der Klammer vertreten ist. Somit steht [!a-z] beispielsweise für alle Zeichen, die keine Kleinbuchstaben sind[1];
{c1,c2}: steht für c1 oder c2, wobei c1 und c2 ebenfalls Suchmuster darstellen. Das bedeutet, Sie können etwa folgendes angeben: {[0-9]*,[acr]}
Es folgen einige Beispiele für Suchmuster:
/etc/*conf: Steht für Dateien im Verzeichnis /etc, deren Name auf conf endet (wie etwa /etc/inetd.conf oder auch /etc/conf, da * auch für ein ,,leeres`` Zeichen stehen kann.
image/{cars,space[0-9]}/*.jpg: Alle i Dateien in den Ordnern image/cars, image/space0, bis image/space9 mit der Dateiendung .jpg.
/usr/share/doc/*/README: Alle Dateien, die README heißen und sich in Unterverzeichnissen erster Ordnung des Verzeichnisses /usr/share/doc befinden (etwa die Datei /usr/share/doc/mandrake/README aber nicht die folgende /usr/share/doc/myprog/doc/README).
*[!a-z]: Alle Dateien im aktuellen Verzeichnis, die nicht auf einen Kleinbuchstaben enden.
[1] | Achtung! Dieser Sachverhalt gilt unter GNU/Linux, unter anderen Unix-Derivaten muss das nicht zutreffen. Sie können dieses Verhalten, die sog. ,,collating order`` zum Teil beeinflussen. Auf manchen Systemen steht [a-z] für a, A, b, B, ... , z. Ganz zu schweigen davon dass es etwa im Deutschen auch Umlaute gibt, die darin enthalten sein könnten... |
Zurück | Zum Anfang | Nach vorne |
Umgang mit Dateiattributen | Nach oben | Ein- und Ausgabeumleitung |