Ich bin mir nicht sicher, wie ich am besten beide STDERRund STDOUTdieselbe Datei mit erfassen soll tee. Ich weiß, dass ich, wenn ich zu einer Datei leiten möchte, das Dateihandle nach der Umleitung zuordnen muss, d. H.
find . >/tmp/output.txt 2>&1
Dies weist die Schale zu senden STDOUTan /tmp/output.txtund dann zu senden , STDERRum STDOUT(das nun das Senden /tmp/output.txt).
Der Versuch, das auszuführen, 2>&1bevor die Datei umgeleitet wird, hat nicht den gewünschten Effekt.
Wenn ich jedoch Pipe verwenden möchte, teesollte es sein:
find . |tee /tmp/output.txt 2>&1 # or
find . 2>&1 |tee /tmp/output.txt # ?
|&verwendet, wird der Standardfehler von Befehl1 über die Pipe mit der Standardeingabe von Befehl2 verbunden2>&1 |. Dies ist eine Abkürzung für . Diese implizite Umleitung des Standardfehlers wird nach allen durch den Befehl angegebenen Umleitungen ausgeführt."