Der Befehl tee liest von der Standardeingabe und schreibt gleichzeitig in die Standardausgabe und in eine oder mehrere Dateien. In Kombination mit anderen Befehlen kann tee in zahlreichen Szenarien verwendet werden.
tee Befehlssyntax
Die Syntax des tee Befehls sieht folgendermaßen aus:
tee [OPTIONEN] [DATEI]
- `OPTIONEN`:
`-a` (`--append`) - Anstatt Dateien zu überschreiben, werden die Daten an die angegebenen Dateien angehängt.
- `-i` (`--ignore-interrupts`) - Unterbrechungssignale werden ignoriert, sodass `tee` den Befehl ordnungsgemäß beendet.
- Für eine vollständige Liste der Optionen, verwende `tee --help`.
- `DATEIEN` - Eine oder mehrere Dateien, in die die Ausgabedaten geschrieben werden.
Verwendung des tee Befehls
Die einfachste Anwendung des tee Befehls ist die Kombination mit einem Programm, um die Standardausgabe (stdout) anzuzeigen und gleichzeitig in eine Datei zu schreiben.
Im folgenden Beispiel verwenden wir den Befehl df, um Informationen über den verfügbaren Speicherplatz im Dateisystem zu erhalten. Die Ausgabe wird an tee weitergeleitet, der die Daten sowohl im Terminal anzeigt als auch in die Datei disk_usage.txt schreibt.
df -h | tee disk_usage.txt
Der Inhalt der Datei disk_usage.txt kann mit dem Befehl cat angezeigt werden.
Schreiben in mehrere Dateien
Mit dem tee Befehl können auch mehrere Dateien gleichzeitig beschrieben werden. Dazu werden die Dateinamen durch Leerzeichen getrennt als Argumente angegeben:
Befehl | tee Datei1.out Datei2.out Datei3.out
An die Datei anhängen
Standardmäßig überschreibt der tee Befehl die angegebene Datei. Wenn die Ausgabe an die Datei angehängt werden soll, verwende die Option -a (--append):
Befehl | tee -a Datei.out
Unterbrechungen ignorieren
Mit der Option -i (--ignore-interrupts) können Unterbrechungssignale ignoriert werden. Dies ist nützlich, wenn der Befehl mit CTRL+C unterbrochen wird und tee den Befehl dennoch ordnungsgemäß abschließen soll.
Befehl | tee -i Datei.out
Ausgabe ausblenden
Wenn die Ausgabe von tee nicht in der Standardausgabe angezeigt werden soll, kann sie stattdessen in /dev/null umgeleitet werden:
Befehl | tee Datei.out /dev/null
Tee in Verbindung mit sudo verwenden
Oftmals möchte man als sudo-Benutzer in eine Datei schreiben, deren Eigentümer “root” ist. Normalerweise würde dies fehlschlagen, da die Ausgabeumleitung nicht durch sudo durchgeführt wird, sondern vom unprivilegierten Benutzer. Um dieses Problem zu umgehen, fügt man einfach sudo vor den tee-Befehl ein:
echo "Neue Zeile" | sudo tee -a /etc/datei.conf
Mit dieser Verwendung von tee in Verbindung mit sudo ist es möglich, in Dateien zu schreiben, die einem anderen Benutzer gehören.
Fazit
Der tee Befehl liest von der Standardeingabe und schreibt gleichzeitig in die Standardausgabe und eine oder mehrere Dateien. Durch Kombination mit anderen Befehlen ermöglicht tee eine Vielzahl von Anwendungen.