Tee (Unix)

Die Funktionsweise von tee: Die Ausgaben des Kommandosls -l werden über tee zum einen zu dem Pager less geleitet, zum anderen in die Datei file.txt. Das Stream-Verlaufsdiagramm sieht aus wie ein T-Stück, daher der Name.

tee [tiː] ist ein Standard-Unix-Kommando. Sein Name leitet sich von dem T-Stück (engl. tee connector) ab, mit dem Installateure eine Abzweigung in eine Leitung einbauen.

Der Befehl liest Daten von stdin und gibt sie nach stdout und in eine oder mehreren Dateien aus. Er wird benutzt, um Zwischenergebnisse innerhalb einer Pipe zu erhalten. Diese können zur Fehleranalyse herangezogen oder auch in anderen Pipes weiterverarbeitet werden.

Existenz und Funktionsumfang sowie Verhalten dieses Kommandos wird sowohl durch die Single UNIX Specification (SUS)[1] als auch durch den POSIX-Standard genormt, entsprechend dem IEEE-Standard 1003.1 aus dem Jahr 1990.

Dem Standard gemäß versteht tee zwei Optionen: Mit -a wird an die angegebene Datei angehängt (anstatt eine neue leere Datei zu eröffnen) und mit -i wird das Signal SIGINT ignoriert.

Der Befehl ist auch in den GNU Core Utilities enthalten. Außerdem existiert eine native Implementierung für Microsoft Windows[2].

Beispiel

Dieses Beispiel filtert die Dateien und Verzeichnisse im Rootverzeichnis nach allen, die ein b enthalten. Gleichzeitig wird eine Datei out.file angelegt mit allen Dateien und Verzeichnissen im Rootverzeichnis.

ls -l / | tee out.file | grep b

Einzelnachweise

  1. tee. Single Unix® Specification, Version 2. Open Group, 1997, abgerufen am 6. Mai 2013 (englisch).
  2. tee for Windows auf GitHub.