【发布时间】:2014-04-11 11:26:17
【问题描述】:
我第一次真正介绍在 bash 中注入 'pv' (Pipe Viewer) 以获得一些用户反馈。我还尝试搜索有关 PV 的其他帖子,但没有找到我需要的内容。这可能是一个简单的答案,希望其他人会觉得有用......
我的目标是传输(一个大型网络文件)然后解压缩(在本例中为 tar)
为方便起见,已安装网络文件夹。我可以
pv /root/networkshare/someFile.tar > /tmp/someFile.tar
然后
pv someFile.tar | tar xf -
所以我试图通过管道链接它们,但似乎无法正确处理。我相信我很接近
pv -cN transfer /root/networkshare/someFile.tar > /tmp/someFile.tar | pv -cN untar tar xf -
只是一个 FWIW,如果我创建一个依赖指令它确实有效,我真的想了解更多管道结构。例如,如果网络传输成功,以下将产生预期的结果:
pv -cN transfer /root/networkshare/someFile.tar > /tmp/someFile.tar && pv -cN untar /tmp/someFile.tar | tar xf -
我会很感激最后的“轻推”以及我所缺少的。一如既往的感谢。
【问题讨论】:
-
@AaronDigulla 一个很棒的实用工具catonmat.net/blog/unix-utilities-pipe-viewer
-
我无法想象 -1 的用途,但非常感谢。
-
...为什么不只是
pv /root/networkshare/someFile.tar | tar x? -
@Kevin 只是因为我希望监控与“解压缩”分开的网络传输部分,否则当然可以。
-
这真的没有意义。进入 tar 的速率将与来自网络的速率完全相同(几乎可以肯定受到网络速度的限制)。如果你在一个这样的管道中同时执行它们,你可以跳过额外的、不必要的临时文件。