gzip - 重定向还是管道?

mcu*_*mcu 10 linux pipe gzip dd

我将使用 dd 将大 (750GB) 磁盘备份到外部 USB 磁盘。
我应该使用重定向还是管道?哪个更有效率?或者有什么区别?

另外,最好的块大小是多少?USB 很可能是这里的瓶颈。

dd if=/dev/sda bs=1M | gzip -c > /mnt/sdb1/backups/disk.img.gz

gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M
Run Code Online (Sandbox Code Playgroud)

对比

dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz

dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M
Run Code Online (Sandbox Code Playgroud)

谢谢。

Gil*_*il' 11

您根本不需要使用dd或管道。

</dev/sda gzip >/mnt/sdb1/backups/disk.img.gz
</mnt/sdb1/backups/disk.img.gz gunzip >/dev/sda
Run Code Online (Sandbox Code Playgroud)

我曾经做过一个基准测试,发现使用ddcat在不同磁盘之间直接复制要慢。dd在这种情况下,我希望管道能够做出任何涉及更慢的解决方案。

  • @Yaron 当然:用`pv | 替换`gzip` gzip` 和`gzip -d` 由`gzip -d | gv` (2认同)