理解一系列重定向

Tim*_*Tim 10 shell bash io-redirection

如果同时使用多个重定向,更改它们的顺序会有所不同吗?

如何理解他们的命令的含义?重定向的链接通道是从左到右还是从右到左读取重定向?

例如

command 2>&1 > somefile

command > somefile 2>&1
Run Code Online (Sandbox Code Playgroud)

感谢致敬!

cjm*_*cjm 8

是的,顺序会有所不同,应该从左到右阅读。

command 2>&1 >somefile表示将 stderr (2) 重定向到 stdout 的当前目的地(终端)。然后将 stdout 更改为转到somefile. 所以 stderr 进入终端,stdout 进入文件。

command >somefile 2>&1表示将 stdout 重定向到somefile,然后将 stderr 重定向到与 stdout(文件)相同的目标。所以 stderr 和 stdout 都转到somefile.

在 Bash 手册的第 3.6 节:重定向中进行了解释