使用tee捕获STDERR和STDOUT文件

我不清楚什么是最好的命令是采用tee同时捕获STDERRSTDOUT文件。 我知道,如果我想pipe到一个文件,我必须映射redirect后的文件句柄,即

 find . >/tmp/output.txt 2>&1 

这指示shell将STDOUT发送到/tmp/output.txt ,然后将STDERR发送到STDOUT (现在发送到/tmp/output.txt )。

试图在redirect文件之前执行2>&1不会产生所需的效果。

但是,当我想要使用teepipe应该是:

 find . |tee /tmp/output.txt 2>&1 # or find . 2>&1 |tee /tmp/output.txt # ? 

后者; 它确保原始命令的STDOUT和STDERR转到相同的fd,然后将它们共同送入tee。 在前一种情况下,您将要joinSTDOUT的T恤命令的STDERR。