我不清楚使用捕获两者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 |。标准错误的这种隐式重定向是在命令指定的任何重定向之后执行的。”