我在试着理解两种选择之间的区别
rsync --size-only
和
rsync --ignore-times
据我所知,默认情况下,rsync会比较时间戳和文件大小,以决定是否应该同步文件。上面的选项允许用户影响此行为。
这两个选项似乎至少在口头上产生了相同的结果:仅按大小比较的。
我是不是漏掉了什么微妙的东西?
发布于 2017-06-04 19:52:39
简而言之,--ignore-times
所做的比它的名字所暗示的更多。它忽略了时间和大小。相比之下,--size-only
完全做到了它说的话。
长篇大论的答案是,rsync
有三种方法来确定文件是否过时:
对源的大小和源的时间戳进行比较,并对源和目标的静态校验和进行destination.
这些检查在传输数据之前执行。值得注意的是,这意味着静态校验和不同于流校验和-后者是在传输数据时计算的。
默认情况下,rsync
仅使用1和2。单个stat
可以同时获取1和2,而3需要读取整个文件(这独立于读取文件进行传输)。假设只指定了一个修饰符,这意味着:
--size-only
,仅执行1-忽略时间戳和校验和。除非文件两端的大小相同,否则文件将被复制。--ignore-times
,1、2或3都不执行。始终复制文件。通过使用--checksum
执行https://stackoverflow.com/questions/13778889
复制相似问题