Linux 为什么wget输出到stderr而不是stdout?

Linux 为什么wget输出到stderr而不是stdout?,linux,stdout,wget,stderr,Linux,Stdout,Wget,Stderr,在30分钟徒劳地尝试捕获wget的输出后,我发现程序写入的是stderr,而不是stdout。在web和堆栈溢出中搜索揭示了这一众所周知的事实 你知道为什么会这样吗?这是众所周知的,因为它在 在stderr上报告消息很常见,因为消息与stdout上的常规输出是分开的。这在将多个工具与管道组合时非常有用。在这种情况下,当常规输出和诊断消息混淆时,情况会很糟糕。我在搜索文件输出时找到了相应的手册页部分!!我们能以某种方式避免这种情况吗?您可以将stderr重定向到stdout2>&1或某个文件2>/

在30分钟徒劳地尝试捕获
wget
的输出后,我发现程序写入的是
stderr
,而不是
stdout
。在web和堆栈溢出中搜索揭示了这一众所周知的事实


你知道为什么会这样吗?

这是众所周知的,因为它在


stderr
上报告消息很常见,因为消息与
stdout
上的常规输出是分开的。这在将多个工具与管道组合时非常有用。在这种情况下,当常规输出和诊断消息混淆时,情况会很糟糕。

我在搜索文件输出时找到了相应的手册页部分!!我们能以某种方式避免这种情况吗?您可以将stderr重定向到stdout
2>&1
或某个文件
2>/tmp/err.out
或放弃它
2>/dev/null
。有关重定向的大量答案,请参阅。