什么是&&意思?
我对这个expression有些困惑:
gcc -c -g program.c >& compiler.txt
我知道&>filename
名将redirectstdout和stderr文件的文件filename
。 但在这种情况下,&符号大于符号。 它看起来像M>&N
的forms,其中M
和N
是文件描述符。
在上面的代码片断中, M=1
和N='compiler.txt'
? 这与以下不同:
gcc -c -g program.c > compiler.txt (ampersand removed)
我的理解是,每个打开的文件都与一个大于2的文件描述符关联。这是正确的吗?
如果是这样,是一个文件名与其文件描述符可以互换作为redirect的目标?
这与&>
相同。 从bash的manpage:
redirect标准输出和标准错误此构造允许将标准输出(文件描述符1)和标准错误输出(文件描述符2)redirect到名称为单词扩展的文件。
There are two formats for redirecting standard output and standard error: &>word and >&word Of the two forms, the first is preferred. This is semantically equiva- lent to >word 2>&1