这个表达让我有些困惑:

gcc -c -g program.c >& compiler.txt

我知道&>filename会将stdout和stderr都重定向到filename文件。但是在这种情况下,“&”号在大于号之后。它看起来像M>&N的形式,其中MN是文件描述符。

在上面的代码段中,M=1N='compiler.txt'吗?与以下内容有何不同?
gcc -c -g program.c > compiler.txt     (ampersand removed)

我的理解是,每个打开的文件都与一个大于2的文件描述符相关联。这正确吗?

如果是这样,文件名是否可以与其作为重定向目标的文件描述符互换?

最佳答案

这与&>相同。从bash手册页:

关于bash - >&是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11255447/

10-12 12:28