我不清楚什么是最好的命令是采用tee同时捕获STDERR和STDOUT文件。 我知道,如果我想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。