Rsync:根据点文件的存在仅镜像某些目录

Rsync:根据点文件的存在仅镜像某些目录

我在服务器上有大量文件,而我的 Mac 上有这些文件的部分镜像(即镜像中只有一些文件夹)。我想使用 rsync 将文件从 Mac 同步到服务器,但显然不会选择该/mirror选项,因为那样会删除我未选择在 Mac 上复制的文件。

但是,有些目录我希望有这种镜像行为 - 例如我有需要镜像的 git 存储库,而不仅仅是更新文件。

有没有什么办法可以设置同步过程,使我将镜像行为仅应用于某些目录?

理想情况下,我希望能够创建一个点文件,例如.sync-mirror,将其放在一个目录中,然后镜像该目录和其下的所有目录,而不是简单地复制新的/更新的文件。

答案1

您无需创建文件进行标记,只需将要镜像而不是存档的目录添加到文本文件中,然后执行 2 次 rsync 运行。镜像运行使用此文件作为包含列表,存档运行使用此文件作为排除列表。

rsync [your options for mirroring] --include-from=/path/to/dirlist [source] [target]
rsync [your options for archiving] --exclude-from=/path/to/dirlist [source] [target]

相关内容