• 什么是pv

pv (Pipe Viewer )的简称,由Andrew Wood 开发。是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间。PV显示当前在命令行执行的命令的进度信息,管道查看器.

  • 下载安装
sudo apt-get install pv

# CentOS安装
yum install pv
  • 选项参数
-p, --progress           show progress bar
-t, --timer              show elapsed time
-e, --eta                show estimated time of arrival (completion)
-I, --fineta             show absolute estimated time of arrival
-r, --rate               show data transfer rate counter
-a, --average-rate       show data transfer average rate counter
-b, --bytes              show number of bytes transferred
-T, --buffer-percent     show percentage of transfer buffer in use
-A, --last-written NUM   show NUM bytes last written
-F, --format FORMAT      set output format to FORMAT
-n, --numeric            输出百分比
-q, --quiet              do not output any transfer information at all

-W, --wait               display nothing until first byte transferred
-D, --delay-start SEC    display nothing until SEC seconds have passed
-s, --size SIZE          set estimated data size to SIZE bytes
-l, --line-mode          count lines instead of bytes
-0, --null               lines are null-terminated
-i, --interval SEC       update every SEC seconds
-w, --width WIDTH        assume terminal is WIDTH characters wide
-H, --height HEIGHT      assume terminal is HEIGHT rows high
-N, --name NAME          prefix visual information with NAME
-f, --force              output even if standard error is not a terminal
-c, --cursor             use cursor positioning escape sequences

-L, --rate-limit RATE    limit transfer to RATE bytes per second
-B, --buffer-size BYTES  use a buffer size of BYTES
-C, --no-splice          never use splice(), always use read/write
-E, --skip-errors        skip read errors in input
-S, --stop-at-size       stop after --size bytes have been transferred
-R, --remote PID         update settings of process PID

-P, --pidfile FILE       save process ID in FILE

-d, --watchfd PID[:FD]   watch file FD opened by process PID

-h, --help               显示帮助
-V, --version            显示版本信息


  • 复制文件显示进度
[root@vm10-0-1-212 ~]# pv wj.zip > weijing1.zip 
17.8MiB 0:00:00 [ 381MiB/s] [===============================>] 100%
  • 使用 -L 选项来限制传输速率为1MB/s。
[root@vm10-0-1-212 ~]# pv -L 1m  wj.zip > weijing2.zip 

17.8MiB 0:00:17 [   1MiB/s] [===============================>] 100%
  • 使字符一个个匀速在命令行中显示出来
[root@vm10-0-1-212 ~]# echo "This url is weijing.co" | pv -qL 10
  • 压缩文件展示进度信息
[root@vm10-0-1-212 ~]# pv wj.zip | gzip > weijingbiji.gz

17.8MiB 0:00:00 [25.8MiB/s] [===============================>] 100%
  • 用 dd 命令将 iso 写入磁盘,pv来实现进度条的显示
[root@vm10-0-1-212 ~]# pv -cN source < /CentOS-7-x86_64-Everything-1511.iso | sudo dd of=/dev/disk2 bs=4m

source:  5.2GiB 5:11:41 [ 503KiB/s] [=====================>       ] 71% ETA 2:01:56