Datenfluss
Ein-/Ausgabeumleitung
Ausgabe umleiten
Wie schon erwähnt, leitet der Operator > die Ausgabe eines Programms in eine Datei um. Anstelle von > könnten Sie auch 1> schreiben, denn es handelt sich ja um den ersten Kanal; zwingend nötig ist die Angabe aber nicht, denn ohne weitere Angaben verwendet die Shell immer die Standardausgabe:
ls /etc > etc_inhalt.txt
Existiert die Datei hinter dem Operator bereits, überschreibt die Shell sie einfach. Einen Ausweg aus der Misere bietet der oben gezeigte Test:
test -w etc_inhalt.txt || ls /etc > etc_inhalt.txt
Alternativ verdoppeln Sie den Operator:
ls /etc >> etc_inhalt.txt
Die zwei Größerzeichen bedeuten im Klartext, dass die Shell die Ausgabe des Befehls Ls an die Datei etc_inhalt.txt anhängt, falls sie schon existiert.Falls nicht, erzeugt sie die Datei neu und schreibt die Ausgabe hinein.
Fehlermeldungen abfangen
Den zweiten Kanal leiten Sie um, indem Sie die Ziffer 2 vor den Operator > stellen. Das bietet sich vor allem dann an, wenn die Fehlermeldungen eines Programms so zahlreich über das Terminal fliegen, dass sie Sie beim Lesen der anderen Ausgaben stören.
$ find /home -name "*.tex" find: /home/lost+found: Keine Berechtigung find: /home/petronella/daten: Keine Berechtigung /home/huhn/buch/buch.tex /home/huhn/buch/kap01.tex …
Über das Kommando
find /home -name "*.tex" 2> /dev/null
schicken Sie die Fehlermeldungen an das Datengrab /dev/null auf dem Rechner, so dass diese nicht auf der Standardausgabe erscheinen.



