Linux 中的 pv 命令和示例
pv 是 Linux 中基于终端(基于命令行)的工具,它允许我们监视通过管道发送的数据。 pv 命令的完整形式是Pipe Viewer 。 pv 通过向用户提供以下内容的视觉显示来帮助用户,
- 时间流逝
- 完成进度(百分比栏)
- 当前数据传输速度(也称为吞吐率)
- 数据传输
- ETA(预计时间)(剩余时间)
安装 pv 命令
1. 基于 Debian 的发行版:
$ apt-get install pv
2. 基于 RedHat 的发行版
$ yum install pv
如何使用 pv 命令?
pv用于提供监视缺少上述功能的给定应用程序的进度的能力。可以通过在两个进程之间放置管道运算符( | ) 来使用它。
pv 命令的语法:
pv fileName
pv OPTIONS fileName
pv fileName > outputFileName
pv OPTIONS | command > outputFileName
command1 | pv | command2
pv 命令的标准输入被传递到标准输出,然后结果被打印到标准错误。
pv 命令的选项
1. 一般选项
- -help :显示使用信息。
- –version :显示版本信息。
2. 显示修饰符
- –progress / -p :显示进度条。
- –timer / -t :显示经过的时间。
- -eta / -e :显示操作的估计时间。时间的猜测是基于之前的数据传输速率和要传输的数据大小。
- –rate / -r :打开操作的速率计数器。
- –bytes / -b :显示到目前为止传输的数据总量。
- –numeric / -n :显示整数百分比而不是视觉表示。
- –quiet / -q :无输出
3. 输出修饰符
- –wait / -W :在显示进度之前等待第一个字节的传输。
- –interval SECONDS / -i SECONDS :指定更新之间的时间间隔。
- –force / -F :强制操作,即强制 pv 显示视觉效果,即使标准错误不是终端。
- –size SIZE / -s :假设要传输的总数据为 SIZE 字节,用于计算百分比或 ETA。
- –line-mode / -L :如果找到新行,进度条将移动而不是计算大小。
- –name NAME / -n NAME :用名称前缀输出信息。
- –cursor / -c :使用光标定位转义序列而不是使用回车。
4. 数据传输修饰符
- –rate-limit RATE / -L RATE :将传输限制为每秒最大 RATE 字节。
- –buffer-size BYTES / -B BYTES :使用 BYTE 字节的传输缓冲区大小。
- –remote PID / -R PID :如果 PID 是 pv 的实例,将导致该实例采取行动,通过它已被赋予实例的命令行。
When no option is selected -p, -t, -e, -r, -b options are selected by default.
例子
1.使用复制命令创建进度条
$ pv history.log > $HOME/Documents/history.log
2.用进度条制作zip
$ pv history.log | zip>$HOME/Documents/history.zip
3.统计行数、字数、字节数
$ pv -p history.log | wc
4.监控tar进度
$ tar -czf - ./Documents/ | (pv -p --timer --rate --bytes > backup.tgz)