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

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

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

我使用的是bashUbuntu 20.04,其中包含命令的附带版本。

答案1

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

sudo dd if=/dev/sdb | pigz -c | sudo tee /sdb.img.gz > /dev/null

我会pigz直接以 root 身份运行,避免使用ddand tee

sudo sh -c 'pigz -c < /dev/sdb > /sdb.img.gz'

答案2

tee 打印到文件和标准输出,cat如果您不想要,请使用或简单地重定向标准输出

相关内容