2>&1>"和使用过程中的重定向" |"我一直想知道的是关于上述两者的结合
如果要将prog1的 STDERR和STDOUT重定向到prog2,则将2>&1前一个放在|prog2管道上.另一方面,如果你将prog1的STDERR和STDOUT重定向到一个文件(file.txt),那么就是2>&1在> file.txt.
所以我知道怎么做,我只是想知道为什么这样做.对我而言似乎不一致,但我可能会以错误的方式看待它
谢谢
它们按顺序处理.
所以,如果你这样做
progname 2>&1 1>out.txt
Run Code Online (Sandbox Code Playgroud)
这会将stderr 从程序转移到程序stdout 的当前目标,即stdout流的shell,并将程序的stdout 转移到out.txt.
如果你这样做
progname 1>out.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
这会将程序的stdout转移到out.txt,然后将stderr 从程序转移到程序stdout 的当前目标,即out.txt.