rsync:--size-only和--ignore-times之间的区别是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (452)

我在试着理解两种选择之间的区别

rsync --size-only

rsync --ignore-times

我的理解是,在默认情况下,rsync将比较时间戳和文件大小,以决定是否应该同步文件。

这两种选择似乎都会产生相同的结果:按大小比较

提问于
用户回答回答于

rsync比较文件有多种方式 。

对于本地文件,rsync会比较元数据,如果它看起来不需要复制文件,因为源和目标之间的大小和时间戳匹配,这看起来不会更进一步。如果它们不匹配,则它是文件。但是,如果元数据匹配但文件实际上不相同呢?然后rsync可能没有做你想要的。

尺寸相同的文件可能仍然发生变化。一个简单的例子就是一个文本文件,用来纠正一个错字 - 就像将“teh”改为“the”。文件大小相同,但更正后的文件将具有较新的时间戳。--size-only表示“不看时间;如果大小匹配假定文件匹配”,在这种情况下这将是错误的选择。

另一方面,假设你昨天不小心做了一个大的“cp -r A B”,但你忘记保存时间戳了,现在你想以“rsync B A”的反向操作。所有这些文件都有昨天的时间戳,尽管它们昨天没有真正修改,rsync默认最终会复制所有这些文件,并将时间戳更新为昨天。

--ignore-times表示比较文件,不管文件是否具有相同的修改时间。考虑上面的错字示例,但不仅如此,还可以纠正错字,--ignore-times也会对文件进行差异化处理。

用户回答回答于

缺少rsync也可以通过校验和比较文件。

--size-only这意味着rsync将跳过大小匹配的文件,即使时间戳不同。这意味着它将同步比默认行为更少的文件

--ignore-times这意味着rsync将检查每个文件的和,即使时间戳和文件大小匹配。这意味着它将同步比默认行为更多的文件。

所属标签

可能回答问题的人

  • 华讯云

    0 粉丝0 提问11 回答
  • EatRice

    16 粉丝0 提问6 回答
  • 卓脑域名

    0 粉丝0 提问6 回答
  • gulu丶咕噜

    0 粉丝1 提问6 回答

扫码关注云+社区

领取腾讯云代金券