我试图重定向都stdout
和stderr
到文件的今天,我碰到这个就来了:
<command> > file.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
这显然重定向stderr
到stdout
第一个,然后结果stdout
被重定向到file.txt
.
但是,为什么不是顺序<command> 2>&1 > file.txt
?人们自然会将此解读为(假设从左到右执行)首先执行的命令,然后stderr
重定向到stdout
,然后将结果stdout
写入file.txt
. 但以上只重定向stderr
到屏幕。
shell 如何解释这两个命令?
program 2> error.log
program &> filename
program >> filename 2>&1
program 2>&1
Run Code Online (Sandbox Code Playgroud)
我能够弄清楚这些行的含义。
但是我不太明白我应该把空格放在哪里。我也担心放在哪里实际上并不重要。谢谢阅读。