&符号在此bash命令1>&2中表示的是什么?

快速2>&1将stderr重定向到stdout,但是&符号是什么意思? 我知道如果我们有2 > 1它会输出到一个名为1的文件,那么&符号是做什么的?


它将文件描述符1复制到文件描述符2中.FD2是stderr,FD1是stdout,因此它将输出到stderr而不是stdout。


2>&1将标准错误(文件句柄2)重定向到与标准输出(文件句柄1) 当前要传送的文件相同的文件。

这也是一个与位置有关的事情,所以:

prog >x 2>&1 >y

实际上会发送标准错误到x和标准输出到y ,如下所示:

  • 将标准输出连接到x ;
  • 然后将标准错误连接到当前标准输出,即x ;
  • 然后将标准输出连接到y ;

  • &符号属于“1”,因此代码段实际上包含三个部分:“2”,“>”,“&1”。 它们分别表示“从输出流2(这是标准错误)”,“重定向它”和重定向目标(即输出流1)中获取数据。因此,“&”允许您重定向到现有流而不是文件。

    链接地址: http://www.djcxy.com/p/25603.html

    上一篇: What does the ampersand indicate in this bash command 1>&2

    下一篇: How to add timestamp to STDERR redirection