焦油压缩Zenity进步

时间:2017-04-18 11:52:42

标签: bash tar zenity

我希望显示文件夹的Tar压缩的zenity进度。

请考虑以下代码将Document文件夹压缩为bzip2。

(tar -cf - Documents | pv -n -s $(du -sb Documents | awk '{print $1}') \ 
| bzip2 > test.tar.bz2) | zenity --progress --percentage=0 

通过逐行显示百分比,使用pv在终端中显示进度。

3
9
16
27
...

但是,zenity不显示进度并保持锁定在0%。完成此过程后,zenity将显示100%。 如何解决我的错误并查看zenity的进展?感谢

1 个答案:

答案 0 :(得分:1)

pv报告stderr的进度,zenitystdin读取,因此它永远不会看到pv报告的内容。当stdin关闭时,它会切换到100%。

试试这个,应该解决它:

(tar -cf - Documents | pv -n -s $(du -sb Documents | awk '{print $1}') \ 
| bzip2 > test.tar.bz2) 2>&1 | zenity --progress --percentage=0