如何使用 rsync 仅覆盖自源文件以来已更改的目标文件?

如何使用 rsync 仅覆盖自源文件以来已更改的目标文件?

我们有一个源文件夹,其中包含测试系统的正确基本状态。目前,我们每次都会将该源文件夹复制到目标文件夹,并用基本状态覆盖所有内容。当测试在目标文件夹中运行时,它们会修改一些文件,但不是全部。

我们面临的问题是,复制命令需要花费大量时间来复制所有内容,包括基本状态所需的 node_modules 和供应商文件。我想使用 rsync 仅覆盖从基本状态修改过的那些文件,以节省测试运行时间。

执行此操作的 rsync 语法是什么?

我已经阅读了很多关于使用它来仅同步较新文件的文章,但在我们的例子中,目标文件夹总是比源文件夹更新,所以这不起作用。

答案1

Rsync 默认会通过比较哈希、mtime、大小和其他属性(取决于您选择的选项)来执行此操作。这正是 rsync 的要点;仅复制已更改的数据,使其比直接复制更有效率。

编辑以添加:这是假设您在两端都有一个 rysnc 友好文件系统。例如,如果您使用的是 NTFS,那么将复制整个文件,但仍然只复制已更改的文件。

相关内容