在我的开发环境中,存在一个将 stdout 写入特定文件的别名。
它使用带三通的管道,例如
du -h | & tee /tmp/diskUsage
。
我知道 AND 运算符使文件描述符之前的任何内容都成为文件描述符而不是文件名,例如
2>&1
我们将 stderr 重定向到 stdout 而不是当前目录中名为“1”的文件。
但是,对于
| & tee
的用法,'&'之后和"tee"之前没有任何意义,在这种情况下它有什么作用?
|&
是“将 stderr 和 stdout 从左手程序传输到右手程序”的简写。
基本上,
tee
将接收混合在一起的正常输出和错误输出,而不仅仅是普通的|
通常会做的标准输出。