对话 UNIX: 探察管道(5)

启动这个命令时,pv 显示一个进度条并不断更新。典型的 pv 输出从左到右依次显示目前已经处理的数据量、经过的时间、吞吐量(以 MB/s 为单位)、工作进度的图形表示和数字表示以及估计的剩余时间。上面的显示表明,在工作 9 秒之后,已经处理了 109MB 中的 96.1MB,剩余数据大约为文件的 13%。

在默认情况下,pv 会显示它能够计算出值的所有状态指标。例如,如果 pv 的输入不是文件,也没有手工指定大小,进度条会从左到右移动以表示有活动,但是由于没有总大小,它无法计算出已经完成的百分比。例如:

$ ssh faraway tar cf - projectx | pv --wait > projectx.tar Password: 4.34MB 0:00:07 [ 611kB/s] [ <=> ]  

这个示例在远程机器上运行 tar,把远程命令的输出发送给本地系统以创建 projectx.tar。因为 pv 无法计算出要传输的总字节数,它只能显示到目前为止的吞吐量、经过的时间和一个反映活动的特殊标志。只要有数据流过,就显示从左到右移动的小 “车” (<=>)。

--wait 选项把进度的显示延迟到实际收到第一个字节时。在这里,--wait 是有意义的,因为 ssh 命令可能提示输入密码。

可以根据需要用各种标志启用不同的指标:

$ ssh faraway tar cf - projectx | pv --wait --bytes > projectx.tar Password: 268kB  

这个命令用 --bytes 显示正在处理的字节数。其他选项是 --progress、--timer、--eta、--rate 和 --numeric。如果指定一个或多个显示选项,就会自动地禁用其他所有(未指定的)指标。

pv 有另一种简单的使用方法。--rate-limit 选项可以限制吞吐量。这个选项的参数是一个数字和一个后缀,比如 m 表示 MB/s:

$ ssh faraway tar cf - projectx | pv --wait --quiet --rate-limit 1m > projectx.tar  

这个命令隐藏所有指标 (--quiet) 并把吞吐量限制为 1MB/s。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27784.html