你有助记词或系统吗?这困扰了我很多年,我总是要查一下
答案1
如果您是 C 程序员,您可以将其视为&1
“1 的地址”,因此2>&1
读取“将文件描述符 #2 重定向到与 #1 相同的位置”。
答案2
“二对一”(“存在” >
)对我来说比“二加一”更符合逻辑,我通常会把它与“二加一”混淆。如果您将“and one”视为单个名词(一个地方),那么它在上下文中也具有语法意义,而“Two and to one”则更难做到这一点 - 您必须将“to one”视为单个名词名词,但它仍然没有上下文意义。
答案3
不是助记符,但我读如下:
0
是标准输入。
1
是标准输出。
2
是标准错误。
>
是进入。
<
已出。
&
是文件描述符(在某些 shell 中)。
2>&1
2 > & 1
stderr into file descriptor 1
redirect stderr into stdout
如果您在重定向之前弄乱了任何文件描述符,它可能会改变......
2>somefile 1>&2
2 > somefile 1 > &2
stderr into somefile and stdout into file descriptor 2
redirect stderr into somefile and stdout into somefile.
答案4
我记得它总是 2 -> 1. Stderr 到 stdout。
中间部分总是很难,我总是把它搞砸,直到我想起首先是尖锐的角色>
,然后是我在现实生活中写不出来的角色&
。
所以从来没有2&>1
,总是2>&1