我想将 stdout 和 stderr 重定向command
到logfile.txt
和到otherfile.txt
。
目前,我正在这样捕获两者:
command >> logfile.txt 2>> logfile.txt
这可行,但行不通的是:
node myscript.js 2>&1 >> logfile.txt
这仅记录标准输出。这是一个不起作用的问题,因为如果我想添加第二个文件,我发现的方法2>&1
涉及tee
.
我使用的是 Linux Mint 19,带有 Bash 版本 4.4.20(1)-release。
答案1
正如中所解释的了解重定向序列,重定向的顺序很重要:
node myscript.js 2>&1 >> logfile.txt
将标准错误重定向到标准输出指向的任何内容,然后将标准输出重定向到logfile.txt
,没有触及标准错误。
您需要切换顺序:
node myscript.js >> logfile.txt 2>&1
将在 中记录两个输出logfile.txt
。
但是,如果您想通过管道传输到以下内容,则这不相关tee
:
node myscript.js 2>&1 | tee -a logfile.txt otherfile.txt