Mac OS X 工具仅同步/复制时间戳而不是文件数据?没有文件数据传输,只有文件系统元数据被同步

por*_*org 5 sync macos

这是我目前的情况(简化,实际上当然很多和大文件):

Dir1/
  a b c
Dir2/
  a b c d
Run Code Online (Sandbox Code Playgroud)

这种情况以前发生过:

  • abc 从 Dir1 复制到 Dir2。
  • 在 Dir2 中,abc 的时间戳被意外修改。
  • d 被有意添加到 Dir2。

现在我想这样做:将 Dir2 同步回 Dir1。(与谁有关:我使用 rsync)

  • d 是新的,因此应该被复制。
  • Dir2 和 Dir1 中的 abc 在大小和数据内容上相同,但它们的文件戳不同。因此,它们将被不必要地复制。

我知道 rsync 可以通过 --checksum 或 --size-only 比较文件。但是在以后的每次同步中都必须重复此磁盘/cpu 密集检查。相反,我宁愿通过使用工具将原始文件时间戳从 Dir1 中的时间戳恢复到 Dir2 中的时间戳来一劳永逸地纠正我的错误。然后我的错误得到纠正,未来的同步可以有效地运行。

在 Windows 上,这些工具只能复制时间戳(不复制数据):

有谁知道适合 Mac OS X 的 CLI/GUI 工具吗?

Ram*_*Ram 1

与标准 rsync 检查相比,rsync 中的 --size-only 标志既不是 CPU 密集型也不是磁盘密集型,事实上它更快,因为通常 rsync 会检查文件大小和时间戳。您可以使用 touch 命令显式匹配 Dir2 中 abc 上的时间戳。您可以再次删除 dir2 和 rsync 中的文件。如果有大量文件,这些建议非常有用,因此您可以将它们包装在脚本或查找中。请注意,如果您只是在典型模式下再次运行 rsync,但也使用 --partial optinoal(例如 rsync -az --partial Dir1 Dir2),它不会再次复制文件,而是会尝试智能地同步它们我相信在这种情况下最终只会传输时间戳。