我不清楚使用捕获两者STDERR
并捕获STDOUT
到同一文件的最佳顺序是什么tee
。我知道,如果我想通过管道传输到文件,则必须在重定向后映射文件句柄,即
find . >/tmp/output.txt 2>&1
这指示外壳程序先发送STDOUT
到/tmp/output.txt
,然后再发送STDERR
到STDOUT
(现在正在发送到/tmp/output.txt
)。
尝试执行2>&1
重定向文件之前的操作将不会获得预期的效果。
但是,当我想使用管道tee
应该是:
find . |tee /tmp/output.txt 2>&1 # or
find . 2>&1 |tee /tmp/output.txt # ?
|&
使用,则command1的标准错误通过管道连接到command2的标准输入;它是简写形式2>&1 |
。标准错误的这种隐式重定向是在命令指定的任何重定向之后执行的。”