In dieser Jahreszeit tut ein koffeinhaltiges Heißgetränk gut, aber darum geht es heute nicht. tee
ist ein Kommando, dass gerade beim Piping sehr nützlich ist und jeder bash User kennen sollte.
1 | Einführung |
---|---|
2 | Der bash Prompt |
3 | key bindings |
4 | Der Startvorgang |
5 | Environment Variablen |
6 | builtin commands |
7 | Arbeiten mit Dateien |
8 | nano |
9 | bash Scripting |
10 | Variablen |
11 | Verzweigungen (if) |
12 | Schleifen |
13 | Kommandozeilenparameter |
14 | exit Codes bash Tutorial Teil 14 |
15 | von der Idee zum Script |
16 | grep |
17 | Piping und Redirection |
18 | tee |
tee
tee (gesprochen wie der englische Buchstabe T) hat eine vermeintlich simple Aufgabe.
Es nimmt alles, was in es per stdin
hineingeschrieben wird und schreibt es dann sowohl nach stdout
als auch in eine Datei hinein. Das ganze ähnelt einem Bewässerungskanal mit einem Zulauf und zwei orthogonalen Abläufen. Da dieser wie ein ‚T‘ aussieht, wurde das Kommando tee benannt.
Praxis
Ein paar praktische Beispiele machen die Funktion von tee
deutlicher. Mit ls -l /|tee output.txt
liste ich das Root-Verzeichnis auf und pipe die Ausgabe von ls nach stdin von tee. Dieses nimmt den Input und gibt ihn ganz normal nach stdout weiter. Zusätzlich wird er aber auch nach output.txt geschrieben.
Daten anhängen
Standardmäßig überschreibt tee bei jedem Aufruf eine vorhandene Datei. Dies lässt sich mit dem Parameter -a
abstellen. Dann werden neue Daten an eine bestehende Datei hinten angehängt.
mehrere Dateien
tee
kann seine Eingabedateien in mehrere Dateien schreiben.
ls -l /|tee output.txt output1.txt output2.txt
Dies erzeugt drei identische Dateien mit der Ausgabe des ls
Kommandos.