Shell/tee

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Installation
  2. Benutzung
  3. Links

Der Befehl tee (Englisch für den Buchstaben T in Anlehnung an ein T-Stück in Leitungen) liest von der Standardeingabe stdin, also z.B. der Tastatur oder der Ausgabe eines anderen Programms, die über eine Pipe umgeleitet wurde und gibt dann das Eingelesene sowohl auf die Standardausgabe stdout (also z.B. den Bildschirm) und parallel in ein oder mehrere Dateien aus.

Installation

tee ist Teil des Pakets coreutils welches Teil jeder Ubuntu-Installation ist.

Benutzung

Die allgemeine Syntax von tee lautet[1]:

tee [OPTION] DATEI [DATEI2] [...] 

Es muss mindestens eine Datei angegeben werden, in die geschrieben wird, es können aber auch mehrere Dateien übergeben werden.

Wie in der Einleitung beschrieben liest tee von stdin, d.h. das Kommando wird normalerweise in Kombination mit einem anderen benutzt.

Der Aufruf von

echo "Hallo Welt" | tee log.txt 

würde "Hallo Welt" ausgeben und gleichzeitig in die Datei log.txt schreiben. Existiert die Datei nicht, wird diese angelegt. Existiert die Datei, wird der Inhalt gelöscht und neu geschrieben. Möchte man die Ausgabe anhängen, muss man tee mit der Option -a wie append, anhängen aufrufen:

echo "Hallo Welt" | tee -a log.txt 

Sollten für das Schreiben der Ausgabedatei Root-Rechte benötigt werden, muss dem tee ein sudo vorangestellt werden - und nicht dem Befehl, von dessen Ausgabe tee liest.

Die Ausgabe nach stdout von tee kann umgelenkt und weiterverarbeitet werden.

Der Aufruf von

ping -c 2 ubuntuusers.de | tee log.txt | wc -w 

würde das Ergebnis des Anpingens von ubuntuusers.de in die Datei log.txt schreiben, die Ausgabe nach stdout wird aber von wc weiterverarbeitet und die Worte der Ausgabe gezählt.