我可以使用以下内容将stdout
和stderr
重定向到单独的文件中
dir >> out 2>> error
或stderror
和stdout
使用以下内容合并为一个文件:
dir >> consolidate 2>&1
我如何一起完成这项工作(退出,错误,一次合并文件)?
答案 0 :(得分:5)
您可以尝试以下内容:
(command > >(tee out.txt) 2> >(tee error.txt >&2)) &> consol.txt
<强>测试强>
$ ls
f
$ ls g*
ls: cannot access g*: No such file or directory
$ (ls g f > >(tee out.txt) 2> >(tee error.txt >&2)) &> consol.txt
$ cat out.txt
f
$ cat error.txt
ls: cannot access g: No such file or directory
$ cat consol.txt
f
ls: cannot access g: No such file or directory
答案 1 :(得分:3)
不需要任何基础,因为这可以很容易地在标准sh中完成:
{ { dir | tee -a out; } 2>&1 >&3 | tee -a error; } >> consolidate 3>&1