'dd‘命令需要太长时间吗?

将来,您应该使用pv来获得一个正在运行的进度条。

sudo apt-get install pv

安装了pv后,让我们假设您希望将一个20 or的驱动器/dev/foo克隆到另一个驱动器(20 or或更高),/dev/baz:

sudo dd if=/dev/foo bs=4M | pv -s 20G | sudo dd of=/dev/baz bs=4M

注意:bs=4M参数将dd操作的块设置为4MB,这大大提高了整个操作的速度。-s 20G参数告诉pv这个操作有多大,所以它可以给你一个ETA和一个当前的速度。

我太爱pv了,很可能是违法的。

注意,虽然这样做很直观,而且从左到右排序很好,如果您谈论的是非常快的数据流,则往返STDOUT的管道可能会导致性能损失。如果您正在查看如何移动数百MB/秒,下面的语法会更快:

pv -s 20G < /dev/foo > /dev/baz

-s 20G是可选的,如果您实际知道流有多大(或有多大),它允许pv给出完成的时间估计。没有这一点,pv将试图找出数据集有多大(例如,它知道一个文件有多大),但如果它不能(例如使用块设备,而不是文件),它只是告诉您传输速率,而不猜测事情将需要多长时间。

2026-07-31 22:45:36