当前位置: 首页 > 工具软件 > S tar > 使用案例 >

tar显示压缩进度条

计泉
2023-12-01

进度条


tar处理小文件时,非常快,不需要看进度。

但当文件比较大时,耗时较长,这时需要个进度条看一下,以评估剩余时间。

Linux下,可以使用pv来显示进度。

pv


pv用来监视数据通过pipe的进度,能够显示耗时、完成率(进度条)、当前吞吐率、总传输字节等信息。

使用方式:在两个程序之间,以合适的参数插入pipeline。

pv将会把提供的文件拷贝到标准输出,如果没有指定文件,将拷贝标准输入,这时它的行为和cat一致。

如,查看使用nc传输一个文件的速度:

pv file | nc -w 1 somewhere.com 3000

同样的目的,也可以这样写:

cat file | pv -s 12345 | nc -w 1 somewhere.com 3000

这种方式提供了两个不同的命令:cat和nc,而pv在中间,-s指定了文件的大小,单位是字节。

查看man page了解更多信息。

在tar时使用pv


压缩文件时,在tar和gzip中间使用pv,把待压缩的文件的大小传递给pv:

tar -cf - a.csv | pv -s $(du -sb a.csv | awk '{print $1}') | gzip > a.tgz

其中,横线表示把tar的结果传送到标准输出,以作为gzip的输入。

解压缩:

pv question.tar.gz | tar -zxf -

直接把文件传递给pv,pv把文件读取到stdout,作为tar的输入。

小节


这时只是利用了pv命令实现了速率展示。

当然也可以结合其他命令,让pv实现更多有意思的功能。

 类似资料: