如何在复制文件时查看总进度

如何在复制文件时查看总进度

我们知道,如果我们给 rsync 提供 --progress 参数,它将显示复制文件的进度。但问题是,它显示的是每个单个文件的进度,而不是总进度或整体进度。

那么如何查看文件复制的总进度。

答案1

要查看 的总体进度rsync,现代版本(从 3.1.0 开始)有选项--info=progress2rsync必须与源文件(或使用 NFS)在同一台计算机上运行,​​才能显示正常的值。-a如果您复制系统目录,也不要忘记提供选项。

答案2

正如评论所说,问题是已经被问过这里

所以...简短的回答:你不能。

编辑:您现在可以使用--info=progress2选项来rsync了解总体进度(如果您正在寻找替代进度指示器或了解更多信息,请阅读我原始答案的其余部分)。

我引用的是大卫·麦金托什:

添加总进度指示器的方法并不简单。

这样做的原因是,当 rsync 查看要同步的文件列表时,它不提前知道哪些文件需要更改。如果您正在进行增量传输,则必须提前计算增量本身,以全面了解需要完成的工作。

换句话说,计算需要完成多少工作的最简单方法就是实际执行。


但你可以有一个进度条传输的文件数使用pv,如果您已经知道自己有多少,请引用零度:

rsync -aix /source remote:/dest | pv -les $(df -i /source | perl -ane 'print $F[2] if $F[5] =~ m:^/:') >/dev/null

答案3

同步是一个 rsync 包装器,显示带有进度的状态栏:

同步

相关内容