为什么在将 dd 与管道一起使用时不需要 `of` 操作数?

Why is the `of` operand not needed when using dd with a pipe?

我遇到过这段代码:

$ sudo dd if=/dev/sda | ssh username@10.1.1.5 \ "cat > /media/disk1/sda-image.img"

这段代码的某处不应该有一个of操作数吗?另外,\ 的目的是什么?

任何帮助将不胜感激。

像许多旧的 Unix 实用程序一样,dd(实际上比 Unix 更早)的设计使其可以与其他使用管道的命令结合使用。 of 参数仅在您希望将其输出写入文件时才需要;否则 dd 的默认行为是将数据写入 stdout。在这种情况下,dd 命令的输出使用 ssh 管道传输到远程主机上的 cat 命令 运行。

当完整命令包含在一行中时,\ 不执行任何操作。它通常用在 shell 脚本中,紧接在换行符之前,以通知 shell 命令的其余部分在下一行继续。