📜  Linux 中的 pv 命令和示例

📅  最后修改于: 2022-05-13 01:57:31.589000             🧑  作者: Mango

Linux 中的 pv 命令和示例

pv 是 Linux 中基于终端(基于命令行)的工具,它允许我们监视通过管道发送的数据。 pv 命令的完整形式是Pipe Viewer 。 pv 通过向用户提供以下内容的视觉显示来帮助用户,

  1. 时间流逝
  2. 完成进度(百分比栏)
  3. 当前数据传输速度(也称为吞吐率)
  4. 数据传输
  5. 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 的实例,将导致该实例采取行动,通过它已被赋予实例的命令行。

例子

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)