>
oder 1>
wird die Ausgabe des Programm in die angegebene Datei umgelenkt. Ob das Eingabeziel vor dem Befehl oder nach dem Befehl steht ist relativ egal. Als Konvention hat sich der Platz hinter dem Befehl eingebürgert.
ole@enterprise:~/test> cat *.txt > alle.txt ole@enterprise:~/test> > nochmal.txt cat *.txt
Dabei wird jedesmal eine neue Datei erstellt und der Inhalt der alten Datei gelöscht.
>>
.
ole@enterprise:~/test> date >> blubb.log ole@enterprise:~/test> >> blubb.log echo $USER $SHELL $0In diesem Fall wird die blubb.log nicht durch den zweiten Befehl überschrieben sondern ergänzt.
2>
wird die Standardfehlerausgabe umgeleitet. Oft stören die Fehlermeldungen, wenn sie z. B. nur melden, daß keine Zugriffsrechte auf ein Verzeichnis bestehen.
ole@enterprise:~/test> ls -Rl 2> /dev/null ole@enterprise:~/test> 2> fehler.log ls -Rl
Die Gerätedatei ist praktisch das Nichts von Linux. Alle Daten, die in diese Datei geleitet werden, gehen verloren und werden nie wieder gesehen. Also der ideale Ort für unsinnige Warnungen, überflüssige Fehlermeldungen oder einfach zum Testen. Schade, daß ich die Ausgabe mancher Menschen nicht in ein solches Gerät umleiten kann.
ole@enterprise:~/test> grep -r enterprise /etc/ &> blubb.txt ole@enterprise:~/test> grep -r enterprise /etc/ >& blubb.txt ole@enterprise:~/test> grep -r enterprise /etc/ > blubb.txt 2>&1 ole@enterprise:~/test> grep -r enterprise /etc/ 2> blubb.txt 1>&2
Bei den letzten Kommandos kommt es auf die Reihenfolge an. Denn die folgenden Kombinationen führen nicht zum gewünschten Erfolg.
ole@enterprise:~/test> grep -r enterprise /etc/ 2>&1 > blubb.txt ole@enterprise:~/test> grep -r enterprise /etc/ 1>&2 2> blubb.txt
<
liest das Programm nicht von der Standardeingabe sondern holt seine Daten aus der angegeben Datei.
Es ist dabei völlig egal, ob die als Eingabe dienende Datei vor oder hinter dem befehl definiert wird.
ole@enterprise:~/test> cat < input.txt In a world without walls and fences, who needs windows and gates? ole@enterprise:~/test> < input.txt cat In a world without walls and fences, who needs windows and gates?
<<
und einem Endemarkierung können Sie auf der Tastatur so viele Zeilen eingeben, wie sie wollen. Abgeschlossen wird der Vorgang, wenn Sie in eine Zeile nur die Endemarkierung hineinschreiben.
ole@enterprise:~/test> sort <<ENDE > Leif Neid > Thore Wart > Axel Schweiß > Erk Lasse > Walter Meingott > ENDE Axel Schweiß Erk Lasse Leif Neid Thore Wart Walter Meingott
Die Ein- und Ausgabeumleitungen können natürlich wild miteinander kombiniert werden. Das kann zu manchmal merkwürdigen Befehlen führen, die aber völlig in Ordnung sind.