Mit dem tee-Befehl bietet Linux die Mög­lich­keit, eine Stan­dard­ein­ga­be nicht nur normal aus­zu­ge­ben, sondern diese zu­sätz­lich in eine oder mehrere Dateien zu schreiben. Damit ist dieser Befehl eine nützliche Lösung, um Zwi­schen­er­geb­nis­se zu speichern, zu ar­chi­vie­ren oder auf Feh­ler­quel­len zu un­ter­su­chen.

Was ist der Linux-tee-Befehl?

Um besser zu verstehen, was der Linux-tee-Befehl ist und was er bewirkt, bietet sich ein Blick auf seinen Namen an. Diesen hat er von dem T-Stück einer Leitung, das an eine Gabelung erinnert – und so funk­tio­niert auch das prak­ti­sche Kommando: Es liest ei­ner­seits von der Stan­dard­ein­ga­be „stdin“, die zum Beispiel bei der Tastatur oder einem Programm zum Einsatz kommt, und gibt das Gelesene über die Stan­dard­aus­ga­be „stdoutwieder aus. Zu­sätz­lich zur Stan­dard­aus­ga­be, also zum Beispiel dem Bild­schirm, schreibt der tee-Befehl in Linux die Ausgabe dabei auch in eine oder mehrere Dateien. Aus der einen Eingabe entstehen also gleich­zei­tig zwei oder mehr Ausgaben.

Welche Funktion hat der tee-Befehl für Linux?

Die zu­sätz­li­che Datei, in die der Linux-Befehl tee die gelesenen Daten ab­spei­chert, kann bei Bedarf neu erstellt werden. Al­ter­na­tiv nutzen Sie eine be­stehen­de Datei, deren Inhalt dann gelöscht und neu ge­schrie­ben wird. Der wich­tigs­te Grund für die Ver­wen­dung des tee-Befehls ist die Mög­lich­keit, Zwi­schen­er­geb­nis­se innerhalb einer Linux-Pipe zu bewahren. So können Sie diese später be­ar­bei­ten oder auf mögliche Fehler hin un­ter­su­chen. Die Ar­chi­vie­rung erfolgt dabei ohne tech­ni­sche Ein­schrän­kun­gen oder Be­hin­de­run­gen parallel zur ei­gent­li­chen Ausgabe.

Wie wird der Befehl verwendet?

Die grund­sätz­li­che Syntax des Linux-tee-Befehls ist immer gleich und sieht wie folgt aus:

tee [OPTIONS] [FILE]
bash

Wichtig ist, dass immer min­des­tens eine Datei (FILE) angegeben wird, in die die Ausgabe ge­schrie­ben werden soll.

Ein einfaches Beispiel für die Anwendung des Linux-Kommandos ist die Kom­bi­na­ti­on mit dem Befehl du (Disc Usage). Dieser zeigt an, welcher Teil einer Fest­plat­te belegt ist. Der voll­stän­di­ge Befehl sieht dann fol­gen­der­ma­ßen aus:

du -h | tee disk_usage.txt
bash

Sie erhalten die In­for­ma­ti­on, wie viel Spei­cher­platz auf Ihrer Fest­plat­te belegt ist. Durch die Option „-h“ (human readable) wird der belegte Platz in einem ver­ständ­li­chen Format angegeben. Gleich­zei­tig zur Stan­dard­aus­ga­be wird die In­for­ma­ti­on auch in der Textdatei disk_usage.txt hin­ter­legt und ge­spei­chert. Wenn diese bisher nicht existiert, wird sie au­to­ma­tisch angelegt.

Wie ver­hin­dern Sie, dass der Inhalt einer Datei über­schrie­ben wird?

Wenn Sie keine weiteren Vor­keh­run­gen treffen, wird der Linux-tee-Befehl die In­for­ma­tio­nen in einer Datei über­schrei­ben sobald er erneut ein­ge­setzt und diese Datei angegeben wird. Möchten Sie dies ändern, nutzen Sie einfach die Be­fehls­zei­len­op­ti­on -a. Diese sorgt dafür, dass der neue Inhalt hin­zu­ge­fügt wird. Beim oben genutzten Beispiel sähe das dann so aus:

du -h | tee -a disk_usage.txt
bash

Wie schreibt man mit dem tee-Befehl in mehrere Dateien gleich­zei­tig?

Es ist ohne große Umstände möglich, die Ausgabe in mehrere Dateien zu schreiben. Diese müssen Sie zu diesem Zweck lediglich einzeln angeben und durch Leer­zei­chen trennen, wie in folgendem Beispiel:

du -h | tee disk_usage1.txt disk_usage2.txt disk_usage3.txt
bash

Wie leitet man die Ausgabe als Eingabe weiter?

Mit dem Linux-tee-Befehl können Sie al­ler­dings nicht nur die Ausgabe parallel in beliebig viele Dateien schreiben. Zu­sätz­lich haben Sie auch die Mög­lich­keit, die Ausgabe als Eingabe an andere Befehle wei­ter­zu­lei­ten. Das funk­tio­niert zum Beispiel so:

ls file* | tee dritte_datei.txt | wc -m
bash

In diesem Beispiel wird nicht nur die Ausgabe im Dokument dritte_datei.txt ge­spei­chert, sondern Sie erhalten auch eine In­for­ma­ti­on darüber, wie viele Zeichen sich in der Datei befinden.

Wie verwendet man den Linux-tee-Befehl mit sudo?

Auch in Ver­bin­dung mit sudo können Sie in Linux den tee-Befehl verwenden. Das ist dann von Vorteil oder sogar notwendig, wenn Sie in eine Datei ge­schrie­ben haben, für die Root-Rechte gelten. Ver­zich­ten Sie in einem solchen Fall auf sudo, wird Ihnen nur eine Feh­ler­mel­dung angezeigt. Hier ein Beispiel für den Aufbau dieses Befehls:

echo "Beispiel" | sudo tee -a root_dokument.txt
bash
Hinweis

sudo ist ein Befehl, der in unix­ar­ti­gen Be­triebs­sys­te­men wie Linux oder macOS genutzt wird, um Programme mit er­wei­ter­ten Rechten aus­zu­füh­ren. Dies ist vor allem dann hilfreich, wenn Aufgaben erledigt werden sollen, die nor­ma­ler­wei­se in den Auf­ga­ben­be­reich der Ad­mi­nis­tra­to­rin oder des Ad­mi­nis­tra­tors fallen.

Wie kann man einen Interrupt bei der Aus­füh­rung von tee igno­rie­ren?

Mit der Be­fehls­zei­len­op­ti­on -i haben Sie die Mög­lich­keit, einen Interrupt (eine Un­ter­bre­chung) während der Aus­füh­rung des tee-Befehls in Linux zu igno­rie­ren. Das In­ter­rupt­si­gnal würde ansonsten angezeigt werden, wenn Sie die Tas­ten­kom­bi­na­ti­on [Strg] + [c] be­zie­hungs­wei­se [Ctrl] + [c] drücken. Die ent­spre­chen­de Option setzen Sie direkt hinter dem Befehl tee ein:

command | tee -i file.out
bash
Zum Hauptmenü