Zeichen mit Besonderer Bedeutung

Block 1

4.1 Wildcards

Die Zeichen * und ?

Die Zeichen * und ? sind Wildcards, sie stehen für beliebige Zeichen in einem Datei- oder Verzeichnisnamen. Ein Beispiel: in deinem unixeinfuehrung Verzeichnis, tippe

ls list*

Das zeigt dir alle Dateien im aktuellen Verzeichnis, deren Name mit list.... beginnen.

Versuche

ls *list

Das gibt dir alle Dateien im Verzeichnis, die auf ....list enden

Das Fragezeichen (?) steht für genau ein Zeichen.
ls ?ouse würde also Dateien wie house oder mouse finden, nicht aber grouse.
Was zeigt dir

ls ?list

grep und pdfgrep

Mit Wildcards kannst du grep mehrere Dateien durchsuchen lassen. Grep gibt dann neben der Zeile mit dem Treffer auch den Dateinamen aus. Das ist sehr nützlich, wenn du nicht mehr genau weisst, in welcher Datei du deine Notizen zu einem bestimmten Thema gemacht hast.

grep -i orange *

Wie bei der Einführung von grep erwähnt, gibt es auch den Befehl pdfgrep. Im Verlauf deines Studiums wirst du mehrere hundert PDFs zusammentragen. Da ist es sehr praktisch, wenn du nicht jedes einzelne öffnen musst, um die Erklärung für ein Fachbegriff zu finden.

4.2 Konventionen für Dateinamen

Für das Verständnis dieses Abschnittes, solltest du dich daran erinnern, dass ein Verzeichnis in Unix bloss eine spezielle Datei ist. Die folgenden Regeln und Konventionen für Dateinamen gelten also auch für Verzeichnisse.

Zeichen mit spezieller Bedeutung (wie / * & %) solltest du in Dateinamen möglichst vermeiden. Vermeide auch Leerzeichen in Namen. Am Besten verwendest du nur alphanumerische Zeichen (Zahlen und Buchstaben sowie _ (Underscore), - (Minus) und . (Punkt).

Dateinamen enden meist mit einem Punkt gefolgt von einer Buchstabengruppe, die den Inhalt der Datei beschreibt. So enden Textdateien oft auf .txt und du kennst sicher auch die Endung .pdf. Mit dieser Konvention kannst du also einfach alle pdf-Dateien in einem Verzeichnis finden: ls *.pdf

Eine weitere Konvention die ich selbst sehr nützlich finde ist, alle Dateinamen mit einem Kleinbuchstaben zu beginnen. So kann ich beim tippen auf [Shift] verzichten.

Hinweis: Selbstverständlich funktionieren moderne Unix-Systeme auch wenn du dich nicht an diese konventionen hältst. Allerdings musst du in der Shell dann stehts aufpassen, dass du die Sonderzeichen korrekt markierts. Um eine Datei big list auszugeben musst du zum Beispiel cat "big list" oder cat big\ list verwenden.

Zusammenfassung

* findet eine beliebige Anzahl von Zeichen
? findet genau ein Zeichen