解码“程序>文件2>&1”

Gee*_*eek 3 shell io-redirection stdout stdin

我在理解构造时遇到了一些困难prog > file 2>&1。我读过它的意思是“将标准输出标准错误发送到文件”。但我的问题是如何?

我知道prog > file基本上将标准输出发送到文件。我也明白这prog 2>&1意味着应该将stderr发送到stdout。但我无法将 prog > file 2>&1. 这里的专家可以帮我解码吗?

cuo*_*glm 6

你只需要从左到右阅读:

  • > file--> 将所有内容从stdoutto重定向file。(你可以想象你有一个链接,点对点从stdoutto file
  • 2>&1--> 将所有内容从stderrto重定向stdout,现在指向file.

所以结论:

stderr --> stdout --> file
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到一个很好的参考。