为什么 dd if=/dev/sdb | 猪-c | tee /sdb.img.gz 打印到控制台?

Kar*_*ter 0 bash pipe dd tee

该命令sudo dd if=/dev/sdb | pigz -c | sudo tee /sdb.img.gzsudo标题中省略)将二进制数据打印到控制台ddpigz。我想知道为什么因为所有输出都被捕获在一个管道中|并且链中的最后一个被重定向到文件。因此,标准输出没有“泄漏”。我没有得到什么?

我在bashUbuntu 20.04 上使用命令的附带版本。

Ste*_*itt 6

tee 复制它的输入,将它(在你的情况下)发送到它的标准输出和/sdb.img.gz. 您可以重定向其输出以避免在控制台上看到输出:

sudo dd if=/dev/sdb | pigz -c | sudo tee /sdb.img.gz > /dev/null
Run Code Online (Sandbox Code Playgroud)

我会pigz直接以 root 身份运行,避免ddtee

sudo sh -c 'pigz -c < /dev/sdb > /sdb.img.gz'
Run Code Online (Sandbox Code Playgroud)