在Linux中显示复制/备份/ tar文件进度条
推荐阅读: Progress - 一个小工具来监控(cp,mv,dd,tar等)的命令进度
Pv是一个基于终端的工具,它允许您监视正在通过管道发送数据的进度。 当使用 PV的命令,它给你以下信息的可视化显示:- 已过的时间。
- 完成的百分比,包括进度条。
- 显示当前吞吐率。
- 传输的总数据。
- 和ETA(估计时间)。
如何在Linux中安装pv命令?
默认情况下,在大多数Linux发行版上不安装此命令,因此您可以按照以下步骤进行安装。在Fedora,CentOS和RHEL
首先,你需要打开 EPEL资源库 ,然后运行下面的命令。# yum install pv # dnf install pv [On Fedora 22+ versions]
示例输出
Dependencies Resolved ================================================================================= Package Arch Version Repository Size ================================================================================= Installing: pv x86_64 1.4.6-1.el7 epel 47 k Transaction Summary ================================================================================= Install 1 Package Total download size: 47 k Installed size: 93 k Is this ok [y/d/N]: y Downloading packages: pv-1.4.6-1.el7.x86_64.rpm | 47 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : pv-1.4.6-1.el7.x86_64 1/1 Verifying : pv-1.4.6-1.el7.x86_64 1/1 Installed: pv.x86_64 0:1.4.6-1.el7 Complete!
在Debian,Ubuntu和Linux Mint
# apt-get install pv
示例输出
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: pv 0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded. Need to get 33.7 kB of archives. After this operation, 160 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe pv amd64 1.2.0-1 [33.7 kB] Fetched 33.7 kB in 0s (48.9 kB/s) Selecting previously unselected package pv. (Reading database ... 216340 files and directories currently installed.) Preparing to unpack .../archives/pv_1.2.0-1_amd64.deb ... Unpacking pv (1.2.0-1) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Setting up pv (1.2.0-1) ...
在Gentoo Linux
使用emerge软件包管理器安装pv命令,如图所示。
# emerge --ask sys-apps/pv
在FreeBSD Linux上
您可以使用端口安装它,如下所示:# cd /usr/ports/sysutils/pv/ # make install clean或者添加二进制包如下:
# pkg_add -r pv
如何在Linux中使用pv命令?
pv大多与缺乏并监控一个正在进行的操作的进度的能力的其他程序使用。您可以使用它,将它放在两个进程之间的管道中,并提供相应的选项。 pv标准输入将传递到其标准输出和进展(输出)将在标准错误打印。 它有一个类似的行为作为 cat命令在Linux中。 pv命令的语法如下:pv file pv options file pv file > filename.out pv options | command > filename.out comand1 | pv | command2与 Pv使用的选项分为三类, 显示器开关 , 输出改性剂和 常规选项 。
显示修饰符下的一些选项。
- 要打开显示栏,使用-p选项。
- 要查看所经过的时间,使用-timer选项。
- 要打开它试图猜测到底需要多长时间的操作完成之前,使用-ETA选项ETA计时器。该猜测基于先前的传输速率和总数据大小。
- 要打开一个速率计数器使用-rate选项。
- 以显示到目前为止传输的数据的总量,可以使用-bytes选项。
- 为了显示进度通知整数百分比,而不是视觉指示的,使用-n选项。 这可以通过使用PV对话框时命令可显示一个对话框,进度良好。
输出修饰符下的一些选项。
- 等到第一个字节显示进度信息之前,转让,使用-wait选项。
- 假设要传送的数据的总量是SIZE字节计算百分比和ETA时,可使用-size SIZE选项。
- 要更新之间指定秒内,使用-interval秒选项。
- 使用-force选项强制操作。此选项强制pv在标准错误不是终端时显示视觉效果。
- 常规选项-help显示使用信息,-version显示版本信息。
对示例使用pv命令
1.当包括任何选项, pv命令默认 -p,-t,-e,-r和 -b选项运行。 例如,要复制 opensuse.vdi文件 /tmp/opensuse.vdi,运行这个命令并观看截屏进度条。# pv opensuse.vdi > /tmp/opensuse.vdi2.要在你的/ var一个zip文件/ log / syslog的文件,运行以下命令。
# pv /var/log/syslog | zip > syslog.zip3.要算行,字和在 / etc字节数 / hosts文件,而只显示进度条,下面运行此命令。
# pv -p /etc/hosts | wc4.进行监控创建备份文件的进度 tar实用程序 。
# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)5.使用 pv和 对话基于终端的工具一起按如下方式创建一个对话框进度条。
# tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
创建对话框进度框