dd
是一个 Bash 命令,可以用于文件/硬盘的整体拷贝。比如,希望将 Raspberry Pi 的 SD 卡复制一份,就可以使用 dd
这个命令来进行。
但是默认的 dd
命令并没有进度提示,在完整执行完之前,默认在 stdout 中不会看到任何输出。
如果想要获得当前 dd
的执行进度,可以尝试如下的一些方法:
- 通过
Control + T
将SIGINFO
发送给dd
命令,dd
收到后会输出当前的进度信息; - 类似的,也可以通过
pkill
命令将SIGINFO
发送给dd
:pkill -INFO -x dd
。
其中,针对第二点的命令,可以写一个简单的脚本来定时输出当前的进度:
while pgrep ^dd; do pkill -INFO dd; sleep 10; done
dd
的输出结果示例如下:
1000+0 records in
1000+0 records out
67108864000 bytes transferred in 3.720346 secs (18038339571 bytes/sec)
更多方法(原理都是发送 SIGINFO
给 dd
),可以参考这里。