xargs + pv = 混乱的终端

xargs + pv = 混乱的终端

如果我想在长时间运行的操作上显示一个小的进度指示器,我可以使用管道查看器

ssh pc2 cat some.file | pv -nC reading | gzip --fast | pv zipping > some.file.gz

这给了我一个有趣的小显示,告诉我事情进展的速度:

reading:  470MiB 0:00:18 [26.7MiB/s] [   <=>                              ]
zipping: 99.6MiB 0:00:18 [5.61MiB/s] [          <=>                       ]

但是当我同时做一堆事情时,输出就变得一团糟:

cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."

有什么方法可以让它工作吗?

man pv说有一种方法可以将的输出循环传输pv到名为的实用程序中dialog,但我对此不熟悉

答案1

您可以在新终端或对话框中执行每个程序实例。对于终端

cat file.list | xargs -P 4 --replace={} gnome-terminal -x sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."  

在对话框中查看 zenity

 cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | zenity --text-info | ..."

答案2

如果您已安装 GNU Parallel:

cat file.list | parallel --tmux -P 4 'ssh pc2 cat {} | pv -nC r.{} | ...'

这将启动 中的作业tmux。然后您可以附加到tmux

tmux attach

如果您的系统没有安装 GNU Parallel,则需要 10 秒才能安装完成:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

了解更多信息:观看简介视频以获得快速介绍: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

浏览教程 (man parallel_tutorial)。命令行会让您爱上它。

相关内容