我正在尝试更改使用 rsync 进行的文件传输的输出位置,如下所示:
rsync -zvh --progress ubuntu-19.10-desktop-amd64.iso /home/lnxusr/Downloads/
由此:
ubuntu-19.10-desktop-amd64.iso
144.67M 5% 34.50MB/s 0:01:05
对此:
ubuntu-19.10-desktop-amd64.iso
144.67M 5% 34.50MB/s 0:01:05
但是,当我将其通过管道传输到时| sed -u 's/[^\s]+//'
,我只得到静态输出:
ubuntu-19.10-desktop-amd64.iso
我尝试了建议的答案这里关闭缓冲过程,stdbuf -o0
但得到的结果与之前相同。
有人知道这种输出操作吗?或者是否有可能定位这个输出?
答案1
另一个答案可能会提供更好的方法:
rsync 有一个--info
选项不仅可以用来输出当前进度,还可以输出传输速率和经过时间:
--info=FLAGS fine-grained informational verbosity
有关如何使用它的解释位于-P
手册页中的选项下:
-P The -P option is equivalent to --partial --progress. Its purpose is to
make it much easier to specify these two options for a long transfer that
may be interrupted.
There is also a --info=progress2 option that outputs statistics based on
the whole transfer, rather than individual files. Use this flag
without out‐putting a filename (e.g. avoid -v or specify --info=name0)
if you want to see how the transfer is doing without scrolling the screen
with a lot of names. (You don’t need to specify the --progress
option in order to use --info=progress2.)
因此尝试使用:
rsync -zvh --info=progress2 --info=name0 ubuntu-19.10-desktop-amd64.iso /home/lnxusr/Downloads/
笔记:
- 这给出了整个传输的进度,而不是单个文件名的进度。
- 我的系统上没有您的源文件和目标目录可供测试。