这个表达让我有些困惑:
gcc -c -g program.c >& compiler.txt
我知道
&>filename
会将stdout和stderr都重定向到filename
文件。但是在这种情况下,“&”号在大于号之后。它看起来像M>&N
的形式,其中M
和N
是文件描述符。在上面的代码段中,
M=1
和N='compiler.txt'
吗?与以下内容有何不同?gcc -c -g program.c > compiler.txt (ampersand removed)
我的理解是,每个打开的文件都与一个大于2的文件描述符相关联。这正确吗?
如果是这样,文件名是否可以与其作为重定向目标的文件描述符互换?
最佳答案
这与&>
相同。从bash手册页:
关于bash - >&是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11255447/