cmd 2>&1>日志与cmd>日志2>&1

之间有什么区别?

cmd > log 2>&1

cmd 2>&1 > log

命令在哪里?

我应该选择哪个?为什么?

回答:

顺序很重要。进行重定向的方法是从左到右读取它们,并意识到重定向使流指向同一位置。它们不会使流指向彼此。

这意味着什么?如果您说的话,2>&1那么您会将stderr重定向到stdout当前重定向到的位置。如果stdout要进入控制台,则stderr也将进入。如果stdout要去一个文件,那么stderr也是。如果您随后通过重定向stdout进行此操作,则stderr仍将指向stdout

指向的内容。它不会“按照”标准输出到新位置。

回答:

cmd > log 2>&1

这会将stdout重定向到log,然后将stderr重定向到现在正在将stdout重定向到的位置log

将stdout和stderr都重定向到log

回答:

cmd 2>&1 > log

这会将stderr重定向到当前正在将stdout重定向到的任何位置,通常是控制台。然后将stdout重定向到log。请记住,stderr不会“遵循”

stdout,因此它将继续重定向到控制台。

stdout被重定向到日志文件,并且stderr被(仍然)发送到控制台。几乎可以肯定这不是您想要的。

以上是 cmd 2>&1>日志与cmd>日志2>&1 的全部内容, 来源链接: utcz.com/qa/426052.html

回到顶部