“some_command | sudo tee”到底是如何工作的?

“some_command | sudo tee”到底是如何工作的?

我想我知道当有管道(|)时,首先执行左侧命令,并将结果传递给管道的右侧命令,但是......

apt update | sudo tee

...怎么能这样工作呢?是否涉及任何“语法糖”?

答案1

当有管道(|)时,先执行左侧命令,并将结果传递给管道右侧命令

不正确

两个过程同时开始。因此,在您的示例中apt update, 和sudo tee同时启动,并且 的 STDOUTapt update被传递到 的 STDIN 上sudo tee

不涉及任何语法糖,匿名管道 ( |) 是 *nix 中 IPC 的常见(且古老)形式。

FWIW,还有另一种形式的管道 IPC——命名管道。

相关内容