Linux-Befehl tee: Ausgabe gleichzeitig anzeigen und in Dateien speichern

Der Befehl tee ist ein integriertes Werkzeug unter Linux. Er liest Daten vom Standard-Input (STDIN) und schreibt diese gleichzeitig an den Standard-Output (STDOUT) sowie in eine oder mehrere Dateien. Dank der Unterstützung für Pipelines lässt sich tee flexibel mit anderen Befehlen kombinieren, was ihn ideal für komplexe Workflows macht. Im Gegensatz zu einer einfachen Umleitung zeigt tee die Ausgabe in Echtzeit an, was insbesondere bei der Protokollierung oder Fehlersuche in Shell-Skripten von Vorteil ist.

In dieser Anleitung lernst du, wie du tee zum Schreiben, Verwalten und Umleiten von Ausgaben unter Linux verwenden kannst – inklusive der verfügbaren Optionen.

Syntax des Befehls tee

Die Grundstruktur von tee sieht folgendermaßen aus:

$ tee [OPTIONEN]... [DATEI]...

In diesem Aufbau steuern die OPTIONEN das Verhalten des Befehls, während DATEI die Zieldatei(en) angibt, in die geschrieben wird. Nachfolgend eine Liste gängiger Optionen von tee:

  • -a oder --append: Hängt die Ausgabe an bestehende Dateien an, ohne diese zu überschreiben.
  • -i oder --ignore-interrupts: Ignoriert Abbruchsignale.
  • -h oder --help: Zeigt eine Hilfeübersicht mit den verfügbaren Optionen an.
  • -v oder --version: Gibt die installierte Version von tee aus.

Um grundlegende Anwendungsbeispiele zu testen, führe die folgenden Befehle in deinem Linux-Terminal aus.

Beispiel: Hilfeinformationen zu tee anzeigen

Erwartete Ausgabe:

Usage: tee [OPTION]... [FILE]...  
Copy standard input to each FILE, and also to standard output.  

  -a, --append              append to the given FILEs, do not overwrite  
  -i, --ignore-interrupts   ignore interrupt signals  
  -p                        diagnose errors writing to non pipes  
  --output-error[=MODE]     set behavior on write error. See MODE below  
  --help                    display this help and exit  
  --version                 output version information and exit

Beispiel: Installierte Version von tee prüfen

Beispielausgabe:

tee (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Die Option -i in tee verwenden, um Unterbrechungssignale zu ignorieren

Mit der Option -i sorgt der tee-Befehl dafür, dass Prozesse auch bei Unterbrechungssignalen wie Strg + C nicht gestoppt werden:

Diese Option eignet sich besonders für lang laufende Prozesse, bei denen eine unbeabsichtigte Unterbrechung vermieden werden soll. Um tee bei aktiver -i-Option zu beenden, drücke Strg + Z.

Dateien mit dem tee-Befehl unter Linux erstellen

Mit tee kannst du sowohl neue Dateien anlegen als auch bestehende Dateien bearbeiten. Wird die Option -a (append) genutzt, werden Inhalte an bestehende Dateien angehängt. Ohne diese Option überschreibt tee die Datei. So funktioniert das Erstellen neuer Dateien mit tee:

Erstelle eine Datei output.txt mit dem Text “Hello World”:

$ echo "Hello World" | tee output.txt

Ausgabe:

Überprüfe den Inhalt der Datei output.txt mit cat:

Ausgabe:

Erstelle nun mit dem Inhalt von output.txt eine weitere Datei merged.txt:

$ cat output.txt | tee merged.txt

Ausgabe:

Dateien mit dem tee-Befehl überschreiben

Standardmäßig überschreibt tee vorhandene Dateien, sofern nicht die -a-Option verwendet wird. So lässt sich der Inhalt einer Datei mit tee überschreiben:

Prüfe zunächst den aktuellen Inhalt der Datei output.txt:

Ausgabe:

Überschreibe jetzt den Inhalt von output.txt mit dem neuen Text “Greetings”:

$ echo "Greetings" | tee output.txt

Erwartete Ausgabe:

Überprüfe abschließend, ob der neue Inhalt korrekt gespeichert wurde:

Ausgabe:

 

Inhalte an Dateien anhängen mit dem tee-Befehl

Wenn du Inhalte zu einer bestehenden Datei hinzufügen möchtest, ohne deren vorhandenen Inhalt zu überschreiben, verwende tee mit der Option -a (append). So funktioniert das Anhängen von Text mit tee:

Füge den Text “Hello” an das Ende der Datei output.txt an:

$ echo "Hello" | tee -a output.txt

Ausgabe:

Überprüfe den Inhalt von output.txt, um sicherzustellen, dass die neue Zeile angehängt wurde:

Ausgabe:

In mehrere Dateien gleichzeitig schreiben mit dem tee-Befehl

Mit dem tee-Befehl kannst du denselben Inhalt gleichzeitig in mehrere Dateien schreiben. Das ist besonders praktisch, wenn du Ausgaben protokollieren und parallel anzeigen möchtest.

Um Daten in mehrere Dateien zu schreiben, gib einfach die gewünschten Dateinamen hintereinander an:

$ tee <datei1> <datei2> <datei3> ...

Beispiel: Erstelle zwei Dateien mit dem gemeinsamen Inhalt “The Data Backup Process is Complete”:

$ echo "The Data Backup Process is Complete" | tee file1.txt file2.txt

Prüfe den Inhalt beider Dateien, um sicherzustellen, dass die Daten korrekt geschrieben wurden:

Ausgabe:

The Data Backup Process is Complete
The Data Backup Process is Complete

Diese Ausgabe bestätigt, dass tee den Inhalt erfolgreich in file1.txt und file2.txt kopiert hat. Du kannst tee nutzen, um Inhalte zu erstellen, zu überschreiben oder an mehrere Dateien gleichzeitig anzuhängen.

Mehrzeiligen Inhalt mit tee und Heredoc in mehrere Dateien schreiben

Um mehrere Zeilen Text gleichzeitig in verschiedene Dateien zu schreiben, kannst du tee mit der Heredoc-Syntax kombinieren. So funktioniert das:

$ tee test1.txt test2.txt <<EOF
Backup Report - File 1 and File 2
2024 Backup Summary
EOF

Die Notation <<EOF dient dazu, mehrzeiligen Text zu definieren, der von tee gleichzeitig in test1.txt und test2.txt geschrieben wird.

Überprüfe den Inhalt beider Dateien, um das Ergebnis zu verifizieren:

Ausgabe:

Backup Report - File 1 and File 2
2024 Backup Summary
Backup Report - File 1 and File 2
2024 Backup Summary

tee-Befehl mit erhöhten Rechten (sudo) verwenden

Um Dateien zu ändern, die nur mit Root-Rechten bearbeitet werden dürfen, verwende tee in Kombination mit sudo. Hier ein Beispiel, wie du einen Eintrag zur /etc/hosts-Datei hinzufügst:

$ echo "192.0.2.1 mycustomhost.local" | sudo tee -a /etc/hosts

Dieser Befehl ergänzt die IP-Zuweisung 192.0.2.1 mycustomhost.local in der Datei /etc/hosts. Da die Datei Root-Zugriff erfordert, ist sudo notwendig – ohne sudo wird eine Fehlermeldung angezeigt.

Ausgabe:

192.0.2.1 mycustomhost.local

Überprüfe den Inhalt der Datei /etc/hosts, um die Änderung zu bestätigen:

Beispielausgabe:

127.0.0.1 localhost
...
::1 localhost ip6-localhost ip6-loopback
...

192.0.2.1 mycustomhost.local

tee mit anderen Befehlen kombinieren: Ausgabe filtern und umleiten

Der tee-Befehl lässt sich hervorragend mit anderen Linux-Befehlen kombinieren, um Daten in einer Pipeline anzuzeigen, zwischenzuspeichern oder weiterzuleiten. Im Folgenden einige typische Anwendungsfälle:

ls-Ausgabe in eine Datei umleiten

Führe den Befehl ls aus und leite die Ausgabe mit tee in die Datei list.txt um:

Überprüfe den Inhalt der Datei list.txt:

Beispielausgabe:

file1.txt
file2.txt
list.txt
output.txt
test1.txt
test2.txt

Ausgabe mit grep filtern und umleiten

Nutze grep zwischen tee und der Umleitung, um nur bestimmte Inhalte weiterzugeben – z. B. alle .txt-Dateien:

$ ls | tee intermediate.txt | grep .txt > final.txt

Hier wird die Ausgabe von ls zunächst in intermediate.txt gespeichert, danach durch grep gefiltert und schließlich in final.txt umgeleitet.

Überprüfe beide Dateien:

$ cat intermediate.txt
$ cat final.txt

Erwartete Ausgabe:

final.txt
intermediate.txt
list.txt
merged.txt
output.txt

Erweiterte Filterung mit awk und sort

Kombiniere tee mit awk und sort, um Prozessdaten zu verarbeiten und sortiert in einer Datei zu speichern:

$ ps aux | tee process_list.txt | awk '{print $1, $2}' | sort | tee sorted_process_list.txt

Der obige Befehl speichert die vollständige Prozessliste in process_list.txt, filtert Benutzername und PID heraus, sortiert das Ergebnis und schreibt es in sorted_process_list.txt.

Überprüfe den Inhalt beider Dateien:

$ cat process_list.txt
$ cat sorted_process_list.txt

Fazit

In dieser Anleitung hast du gelernt, wie du den tee-Befehl unter Linux vielseitig einsetzt – von der Dateierstellung bis hin zu komplexen Pipe-Kombinationen. Du kannst damit Ausgaben erstellen, überschreiben, anhängen oder gleichzeitig protokollieren und anzeigen. Weitere Informationen findest du auf der Manpage:

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

VeraCrypt unter Ubuntu 24.04 installieren & nutzen

Security, Tutorial
VeraCrypt unter Ubuntu 24.04 installieren – Schritt-für-Schritt-Anleitung VeraCrypt ist eine kostenlose Open-Source-Verschlüsselungslösung, mit der sich vertrauliche Daten wie Dateien, Ordner und ganze Laufwerke absichern lassen. Um diese leistungsstarke Sicherheitssoftware optimal…