我想重定向例如输出,即pv
to的进度条/dev/tty1
。
... | pv -perts 100G | ... 2> /dev/tty1
但我得到的是,每当进度条更新时,它都会在新行中更新,而旧状态仍保留在上面的行中。
有没有办法让它刷新?我听说过,col
但我认为它会在输出完成后打印,当然,这不适合直观地跟踪进度。
答案1
我假设 tty 和 pty 的行为相同。我现在只能访问后者。
尝试这个...
... | pv --force -perts 100G 2> /dev/tty1 | ...
/dev/tty1
在我的测试中,即使我从不同的终端运行它,进度条也会在关联的终端中正常呈现。
(我必须添加,--force
即使pv
手册页说只有在标准错误没有指向终端时才有必要。我使用了伪终端,所以也许它不认为它们是相同的。如果没有它就可以工作,请将其关闭。)
一个例子贯穿...
cat file_250M | pv --force -perts 250M 2> /dev/pty7 | wc
“本地”终端:
0 0 262144000
/dev/pty7 终端(单个不断变化的线路):
0:00:06 [36.7MiB/s] [======================================================================>] 100%