在Linux / bash下我想运行命令并将标准输出发送到foo.txt以及将标准输出和标准错误组合到bar.txt:
$ cmd < input.txt 1>foo.txt 1+2>bar.txt ???
最简单的方法是什么?
只发送stdout:
$ cmd > foo.txt
要发送stdout / stderr:
$ cmd &> bar.txt
但是试图合并:
$ cmd > foo.txt &>bar.txt
导致foo.txt为空。
答案 0 :(得分:1)
您不能同时对输出流进行两次重定向。最简单的方法就是将输出管道输出到tee命令。
答案 1 :(得分:1)
以下应该这样做:
(cmd | tee out.txt) &> both.txt
将stdout
重定向到out.txt
,将stdout
和stderr
重定向到both.txt
。