将bder中的stderr和stdout重定向到单独的文件和单个文件

use*_*463 3 linux bash shell

我可以使用以下方法重定向stdoutstderr分隔文件:

dir >> out 2>> error
Run Code Online (Sandbox Code Playgroud)

stderrorstdout一起使用的单个文件:

dir >> consolidate 2>&1
Run Code Online (Sandbox Code Playgroud)

我怎么能一起做这个(出去,错误,一次合并文件)?

jay*_*ngh 5

您可以尝试以下方式:

(command > >(tee out.txt) 2> >(tee error.txt >&2)) &> consol.txt
Run Code Online (Sandbox Code Playgroud)

测试:

$ ls
f
Run Code Online (Sandbox Code Playgroud)

$ ls g*
ls: cannot access g*: No such file or directory
Run Code Online (Sandbox Code Playgroud)

$ (ls g f > >(tee out.txt) 2> >(tee error.txt >&2)) &> consol.txt
Run Code Online (Sandbox Code Playgroud)

$ cat out.txt
f
Run Code Online (Sandbox Code Playgroud)

$ cat error.txt
ls: cannot access g: No such file or directory
Run Code Online (Sandbox Code Playgroud)

$ cat consol.txt
f
ls: cannot access g: No such file or directory
Run Code Online (Sandbox Code Playgroud)