pv
pv
显示当前在命令行执行的命令的进度信息,管道查看器
补充说明
pv命令 Pipe Viewer 的简称,由Andrew Wood 开发。意思是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间。
下载安装
shell
Debian 系的操作系统,如 Ubuntu |
语法
shell
pv(选项)(参数) |
选项
shell
-p, --progress 显示进度条 |
实例
我们(在 linux 上使用命令行的用户)的大多数使用场景都会用到的命令是从一个 USB 驱动器拷贝电影文件到你的电脑。如果你使用 cp 来完成上面的任务,你会什么情况都不清楚,直到整个复制过程结束或者出错。
shell
复制文件会有进度 |
复制文件时显示进度条(如果没有指定选项,默认使用 -p, -t, -e, -r 和 -b 选项)
bash
$ pv getiot.db > getiot.db.bak |
将 /var/log/syslog
文件打包成 zip 压缩包,并显示进度
bash
$ pv /var/log/syslog | zip > syslog.zip |
使用 tar 命令解压缩时显示进度条
bash
$ pv rootfs.tar.bz2 | tar -jxf - -C rootfs/ |
字符一个个匀速在命令行中显示出来
shell
echo "Tecmint[dot]com is a community of Linux Nerds and Geeks" | pv -qL 10 |
压缩文件展示进度信息
shell
pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip > ./Desktop/fnf.log.gz |
用 dd 命令将 iso 写入磁盘,pv来实现进度条的显示
shell
sudo pv -cN source < /Users/kacperwang/Downloads/CentOS-7-x86_64-Everything-1511.iso | sudo dd of=/dev/disk2 bs=4m |
在linux上, 如果执行的一些命令或者一些脚本需要花费很长时间, 但又不能拿出更多的精力反复盯着有没有执行结束, 这时候可以用pv监听PID, 任务完成后通过网络通知到微信或者钉钉, 这样就可以腾出来精力做其他的事, 是不是很棒
shell
pv -d $(ps -ef | grep -v grep | grep "<脚本或命令的关键字>" | awk '{print $2}') && <这里执行发通知脚本或者命令,脚本或命令需要提前调试好> |
注意
- 选项"-d, --watchfd PID[:FD]", 是在1.6.6版本中才有的参数,如果使用需要
pv
升级到大于等于1.6.6的版本 - CentOS7的Yum仓库里
pv
最新的是1.4.6版本,1.6.6版本是发布在CentOS8里面的,如果需要,可以将CentOS8里的pv下载到本地电脑上或者本地的Yum私服里, 这个是下载地址, 可以根据自己不同的架构下载, 1.6.6的安装:rpm -ivh pv-1.6.6-7.el8.x86_64.rpm -U
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HExLL-迷雾日志!