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