Ein normaler Tar-Befehl
tar cvf foo.tar ./foo >foo.out 2>foo.err
hat drei Ausgangs-E / A-Streams
- Daten in foo.tar archivieren
- Liste der Dateinamen zu STDOUT (umgeleitet in foo.out)
- Fehlermeldungen an STDERR (umgeleitet in foo.err)
Ich kann dann foo.err auf Fehlermeldungen untersuchen, ohne die Liste der Dateinamen durchlesen zu müssen.
Wenn ich etwas mit den Archivdaten machen möchte (durch Netcat oder ein spezielles Komprimierungsprogramm leiten), kann ich die -f -
Option von tar verwenden
tar cvf - ./foo 2>foo.err | squish > foo.tar.S
Aber jetzt ist meine Liste der Dateinamen mit meinen Fehlermeldungen gemischt, da die -v
Ausgabe von tar offensichtlich nicht an STDOUT gehen kann (dort fließen die Archivdaten), so dass tar dies geschickt in STDERR schreibt.
Mit der Korn-Shell können Sie einen Befehl erstellen, der den Archivdatenstrom an einen anderen Befehl weiterleitet und die -v
Ausgabe dennoch getrennt von Fehlermeldungen erfasst .
tee
? Dies scheint ein ziemlich gültiger Anwendungsfall dafür zu sein.