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