命令行终端下的处理进度提示工具 pv

起因

最近在做一个开发板的系统启动卡的制作工具,纯 shell 实现。在实际使用的时候部分 SD 卡或读卡器的问题,导致整个做卡过程十分耗时,让执行制作的人很焦虑。于是开始考虑给这个做卡工具添加进度提示。

一开始是想着先使用 dd 之类的工具给这个 SD 卡做个测试,看看其数据写入速率如何。再根据这个速率计算还需要的剩余时间。结果测试出来的速率值很不靠谱,根本无法使用。再说,tar 解压文件系统到 SD 卡,需要操作大量的文件,其实也不适合用一个单纯的 dd 写入速率来衡量。

实现

放狗搜索发现有个工具叫 pv,挺有意思的。摸索一番,找到了满足需求的用法。

pv rootfs_v2.5.tar.bz2 | sudo tar jx -C fs

效果如下:

 

pv 工具的基本思想是先把数据经过它,然后再通过管道传递给真正需要处理数据的程序,这样,它就能够统计相关信息并进行显示了。

其他

在我的做卡工具中还需要复制大量文件,这个也有显示处理进度的需求。试了下 scp、rsync 等方法,但效果不太理想。后来干脆就继续使用上述 pv + tar 的方法来做这部分的工作了。

下面参考链接里有个挺有趣的东西,使用 pv 来控制终端字符的打印速度。方便的话建议执行一下以下命令看看,效果看起来很 Geek,有趣!

echo "Tecmint[dot]com is a community of Linux Nerds and Geeks" | pv -qL 10

参考

廖杰良 - 2018-11-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackindata

多谢认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值