09.04.2014 Aufrufe

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

88 6 Dateien: Aufzucht und Pflege<br />

6.3.3 Geschweifte Klammern<br />

Gerne in einem Atemzug mit Shell-Suchmustern erwähnt, auch wenn sie eigentlich<br />

eine nur entfernte Verwandte ist, wird die Expansion geschweifter Klammern<br />

in der Form<br />

{rot,gelb,blau}.txt<br />

– die Shell ersetzt dies durch<br />

rot.txt gelb.txt blau.txt<br />

kartesisches Produkt<br />

Allgemein gilt, dass ein Wort auf der Kommandozeile, das einige durch Kommas<br />

getrennte Textstücke innerhalb von geschweiften Klammern enthält, durch so viele<br />

Wörter ersetzt wird, wie Textstücke zwischen den Klammern stehen, wobei in<br />

jedem dieser Wörter der komplette Klammerausdruck durch eins der Textstücke<br />

ersetzt wird. <strong>Die</strong>ser Ersetzungsvorgang findet einzig und allein auf textueller Basis statt<br />

und ist völlig unabhängig von der Existenz oder Nichtexistenz irgendwelcher Dateien oder<br />

Verzeichnisse – dies im Gegensatz zu Suchmustern, die immer nur solche Namen<br />

produzieren, die tatsächlich als Pfadnamen im System vorkommen.<br />

Sie können auch mehr als einen Klammerausdruck in einem Wort haben, dann<br />

erhalten Sie als Ergebnis das kartesische Produkt, einfacher gesagt alle möglichen<br />

Kombinationen:<br />

{a,b,c}{1,2,3}.dat<br />

ergibt<br />

a1.dat a2.dat a3.dat b1.dat b2.dat b3.dat c1.dat c2.dat c3.dat<br />

Nützlich ist das zum Beispiel, um systematisch neue Verzeichnisse anzulegen;<br />

die normalen Suchmuster helfen da nicht, da sie ja nur bereits Existieren<strong>des</strong> finden<br />

können:<br />

$ mkdir -p umsatz/200{8,9}/q{1,2,3,4}<br />

Übungen<br />

C 6.7 [!1] Im aktuellen Verzeichnis stehen die Dateien<br />

prog.c prog1.c prog2.c progabc.c prog<br />

p.txt p1.txt p21.txt p22.txt p22.dat<br />

C<br />

C<br />

C<br />

Auf welche dieser Dateinamen passen die Suchmuster (a) prog*.c, (b) prog?.c,<br />

(c) p?*.txt, (d) p[12]*, (e) p*, (f) *.*?<br />

6.8 [!2] Was ist der Unterschied zwischen »ls« und »ls *«? (Tipp: Probieren<br />

Sie bei<strong>des</strong> in einem Verzeichnis aus, das Unterverzeichnisse enthält.)<br />

6.9 [2] Erklären Sie, warum das folgende Kommando zur angezeigten Ausgabe<br />

führt:<br />

$ ls<br />

-l datei1 datei2 datei3<br />

$ ls *<br />

-rw-r--r-- 1 hugo users 0 Dec 19 11:24 datei1<br />

-rw-r--r-- 1 hugo users 0 Dec 19 11:24 datei2<br />

-rw-r--r-- 1 hugo users 0 Dec 19 11:24 datei3<br />

6.10 [2] Warum ist es sinnvoll, dass »*« nicht auf Dateinamen mit Punkt am<br />

Anfang passt?<br />

Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!