代码之家  ›  专栏  ›  技术社区  ›  PkDrew

AND运算符“&”在“&tee”中的作用是什么?

  •  0
  • PkDrew  · 技术社区  · 7 月前

    在我的开发环境中,存在一个将stdout写入特定文件的别名。

    它使用带三通的管道。, du -h | & tee /tmp/diskUsage .

    我理解AND运算符使它前面的任何内容都成为文件描述符而不是文件名,比如说 2>&1 我们正在将stderr重定向到stdout,而不是当前dir中名为“1”的文件。

    然而,对于使用 | & tee ,在“&”之后没有任何意义在“tee”之前,它在这种情况下做什么?

    1 回复  |  直到 7 月前
        1
  •  1
  •   ShadowRanger    7 月前

    |& 是“将stderr和stdout从左侧程序传输到右侧程序”的简写。

    基本上, tee 将接收一起复用的正常输出和错误输出,而不仅仅是普通的stdout | 会正常的。

    或者引用 GNU docs :

    如果 ‘|&’ 使用, command1 s标准误差除了其标准输出外,还连接到 command2 s通过管道的标准输入;它是缩写 2>&1 | 标准错误到标准输出的隐式重定向是在以下指定的任何重定向之后执行的: 命令1 .