dd命令显示进度

在当前shell执行

dd if=/dev/zero of=/tmp/tmp.test bs=4K count=1000000 oflag=direct

新建shell窗口,执行

watch -n 1 pkill -USR1 -x dd

解释:
watch负责周期性执行一个程序,使用-n可以指定执行的时间间隔。
pkill是根据名称或其他属性来查询进程或给进程发信号的。
dd进程的USR1信号:在标准错误输出中输出I/O数据,并继续复制。也就输出了进度

另外,pkill 使用-x参数为精确匹配(match exactly)等同于使用正则^dd$
当然也可使用kill、killall 命令向dd进程发送USR1信号
或者直接写shell脚本循环代替watch命令

while (ps -ef | grep " dd " | grep -v grep | awk '{print $2}' | while read pid; do kill -USR1 $pid; done); do sleep 5; done

发表评论

电子邮件地址不会被公开。 必填项已用*标注