我将计算机的一个内部驱动器备份到外部驱动器。下次我使用 rsync 同步两个驱动器时,我注意到未修改的大型(40 + GB)文件仍然需要很长时间才能“复制”。我认为 rsync 首先查看了 mod-times 和文件大小?为什么要花这么长时间;好像它正在使用校验和?
我最初使用rsync -rv --delete /src/path/ /dest/path/
我将计算机的一个内部驱动器备份到外部驱动器。下次我使用 rsync 同步两个驱动器时,我注意到未修改的大型(40 + GB)文件仍然需要很长时间才能“复制”。我认为 rsync 首先查看了 mod-times 和文件大小?为什么要花这么长时间;好像它正在使用校验和?
我最初使用rsync -rv --delete /src/path/ /dest/path/
由于您没有复制元数据(如果您使用
--archive
或-a
而不是只是复制元数据-r
),元数据(时间戳、所有权等)在副本和原始数据之间将有所不同。当你rsync
再次运行时,由于时间戳不同,文件被再次复制。所以,你会改为使用
我使用
-i
(--itemize-changes
) 因为它还告诉我为什么要复制文件。另请注意,当您使用 进行本地复制时
rsync
,它不会使用其增量算法,而是会表现得好像--whole-file
(或-W
)已指定。这是因为当通过网络传输时,假设 delta 算法仅比整个文件传输快。使用 delta 算法时,需要在源系统和目标系统上读取整个文件并对其进行校验和。在本地执行此操作似乎有点浪费,因此只需完整复制文件即可。