云网牛站
所在位置:首页 > Linux命令 > 在Linux中实现dd命令写入进度的方法,显示图形化百分比的界面

在Linux中实现dd命令写入进度的方法,显示图形化百分比的界面

2018-11-26 09:53:35作者:画星星高手稿源:linux站

本文将向你介绍如何在Linux操作系统中实现查看dd命令写入进度的方法,即使用dd命令能显示图形化百分比的界面。基本上可以应用在任何一个Linux发行版上。

 

实现dd命令写入进度,命令行显示速度及百分比的界面

参考:Linux系统下使用dd命令创建 Live USB

 

三种方法

在Linux系统中有一个非常强力的工具,那就是dd,它用来操作镜像,简直神器,唯一的不足是没有显示操作进度,不过也可以通过相关的更改或输入相关命令达到目的,下面介绍几个查看写入进度的方法。

 

一、使用pv命令显示图形化百分比的界面

sudo pv -tpreb /dev/sda | dd of=/dev/zero

sudo pv -tpreb /dev/sda | dd of=/dev/zero bs=4096 conv=notrunc,noerror

在Linux中实现dd命令写入进度的方法,显示图形化百分比的界面

注:需要显示图形化百分比的界面,那就使用pv配合dialog还可以显示进度条对话框:

 (sudo pv -n /dev/sda | dd of=/dev/zero) 2>&1 | dialog --gauge "dd process bar" 10 70 0

在Linux中实现dd命令写入进度的方法,显示图形化百分比的界面

注:pv是一个显示其他命令执行进度的一个工具,它可以显示如下信息:

执行时间

进度的百分比

显示执行速度

总的数据传输量

剩余时间

安装pv的方法:

1、Ubuntu系统上

$ sudo apt-get install pv

2、CentOS系统上

$ sudo yum install pv

使用举例:

1、拷贝文件:

$ pv opencv_git.tar > /tmp/temp.tar

2、统计行数:

$ pv -p /etc/adduser.conf | wc

3、tar打包进度:

$ tar -czf - opencv_git/ | (pv -p --timer --rate --bytes > backup.tgz)

 

二、status选项查看进度

如果你使用的是GNU版本的dd,并且coreutils版本高于8.24,那么可以使用status选项。例如:

sudo dd if=/dev/sda of=/dev/zero status=progress

在Linux中实现dd命令写入进度的方法,显示图形化百分比的界面

上面命令在Mac OS X上执行会出错,因为Mac OS X使用的是BSD版本的命令行,不是GUN。你可以在Mac OS X上安装gun coreutils,或者干脆使用上面介绍的pv命令。

 

三、使用pkill打印进度

重新打开一个Shell,然后执行如下命令即可每秒输出一次进度信息:

watch -n 1 pkill -USR1 -x dd

 

附:也可以安装progress来显示Linux命令的执行进度

1、Linux安装progress

progress依赖libncurses库显示进度条,安装依赖:

CentOS系统上:

yum install ncurses-devel

Fedora系统上:

dnf install ncurses-devel

Ubuntu系统上:

sudo apt-get install libncurses5-dev

下载源码,编译安装:

$ git clone  https://github.com/Xfennec/progress

$ cd progress

$ make

$ sudo make install

2、progress的使用

查看支持的命令:

$ progress

No command currently running: cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, zcat, bzcat, lzcat, or wrong permissions.

首先执行要监控的命令,然后打开另一个终端,运行:

$ progress

# $ progress -w

progress首先搜索/proc,找到要监控的命令,然后搜索fd和fdinfo目录,找到打开的文件,计算执行进度。

-m选项:

$ tar czf test.tar.gz /home/snail/ | progress  -m  $!

在Linux中实现dd命令写入进度的方法,显示图形化百分比的界面

监控所有即将要执行的命令:

$ watch progress -q

查看帮助:

$ man progress

 

结语

上面三种方法及使用progress命令都可以让dd命令显示写入进度,你可以选择其中一种方法操作即可。

 

相关主题

操作有方 Linux中使用dd命令不会损毁你的磁盘

Linux命令子频道
精选文章
热门文章