20.3 Umlenken von Kommandoereignissen

Jedes Kommando kann drei Kanäle für Eingabe oder Ausgabe verwenden:

Zum Umlenken dieser Kanäle bestehen folgende Möglichkeiten:

Kommando > Datei

Speichert die Ausgabe des Kommandos in eine Datei; eine etwaige bestehende Datei wird gelöscht. Beispielsweise schreibt das Kommando ls seine Ausgabe in die Datei listing.txt:

ls > listing.txt
Kommando >> Datei

Hängt die Ausgabe des Kommandos an eine Datei an. Beispielsweise hängt das Kommando ls seine Ausgabe an die Datei listing.txt an:

ls >> listing.txt
Kommando < Datei

Liest die Datei als Eingabe für das angegebene Kommando. Beispielsweise liest das Kommando read den Inhalt der Datei in die Variable a ein:

read a < foo
Kommando1 | Kommando2

Leitet die Ausgabe des linken Kommandos als Eingabe für das rechte Kommando um. Beispiel: Das Kommando cat gibt den Inhalt der Datei /proc/cpuinfo aus. Diese Ausgabe wird von grep verwendet, um nur diejenigen Zeilen herauszufiltern, die cpu enthalten:

cat /proc/cpuinfo | grep cpu

Jeder Kanal verfügt über einen Dateideskriptor: 0 (Null) für Standardeingabe, 1 für Standardausgabe und 2 für Standardfehler. Es ist zulässig, diesen Dateideskriptor vor einem <- oder >-Zeichen einzufügen. Beispielsweise sucht die folgende Zeile nach einer Datei, die mit foo beginnt, aber seine Fehlermeldungen durch Umlenkung zu /dev/null unterdrückt:

find / -name "foo*" 2>/dev/null