我试图重定向都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)
我能够弄清楚这些行的含义。
但是我不太明白我应该把空格放在哪里。我也担心放在哪里实际上并不重要。谢谢阅读。