【发布时间】:2019-11-25 13:25:37
【问题描述】:
我正在执行 rsync 过程以从 SD 卡复制文件,并且我想在每个文件的 rsync 过程中显示 Zenity 中每个文件的进度。我尝试了Zenity and rsync,这对我来说似乎很完美。它应该将当前文件和 % 复制到 Zenity,但我无法得到它,输出不是实时的,也不会移动进度条。而且我不知道为什么它不起作用。
我至少要做的是将文件副本的百分比发送到 Zenity 以驱动进度条。但这需要是一个没有尾随 % 的数字来驱动进度条。
这不会输出任何内容,但如果我删除 sed 和 Zenity 步骤,我会得到:0%、1%、2% 等。但 Zenity 需要非百分比值。
sudo rsync -av --info=progress2 "$f"/*.MP4 $copydest | \
strace -e trace=read grep "[0-9]*%" 2>&1 > /dev/null | grep -o "[[:digit:]]*%" | sed 's/[^0-9]//g' | \
zenity --width=400 --height=20 --progress --percentage=0 --text="Copying...." --auto-close --auto-kill \
--title="Copying $tc from $cardname"
理想情况下,我也希望显示当前文件名,但我被卡住了。例如,
Filename.MP4
.......... (progress)
在 grep 或 sed 或 awk 中必须有一个配方,我可以获取 MP4 文件名和复制的百分比作为数字,但它超出了我的范围。
这是 rsync 将在 3 个文件上输出的内容,其中 % 和剩余时间递增等
25_nn67_P1680210.MP4
1,024,202,031 100% 163.00MB/s 0:00:05 (xfr#1, to-chk=2/3)
25_nn67_P1680211.MP4
146,801,421 100% 49.12MB/s 0:00:02 (xfr#2, to-chk=1/3)
25_nn67_P1680212.MP4
【问题讨论】: