首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同步多个文件被部分更改的文件夹

同步多个文件被部分更改的文件夹
EN

Unix & Linux用户
提问于 2015-08-28 02:57:01
回答 1查看 349关注 0票数 1

我在远程计算机上有以下目录结构

代码语言:javascript
运行
复制
 ALLLibs/LibA/LibA.1
 ALLLibs/LibA/LibA.2
 ALLLibs/LibB/LibB.1
 ALLLibs/LibB/LibB.4

对于info,LibA.1和LibA.2是目录的版本,这两个文件夹的内容可能几乎相同,并且可以有更多这样的文件夹。

我想将AllLibs同步到另一台网络太慢的机器上。只有可用的选择是通过网络。

我知道rsync是同步文件的最佳方法,但我相信它可以对文件进行1-1映射并同步它们。

我拥有的一个用例是ALLLibs/LibA/LibA.1如果已经在我的另一台机器上同步,稍后在远程上创建ALLLibs/LibA/LibA.2,我希望通过前面库的修补程序来实现同步。

EN

回答 1

Unix & Linux用户

发布于 2015-08-29 09:58:46

确保使用rsync -z在网络上进行压缩。其他要考虑的选项是-H (硬链接)和-S (稀疏文件)。

在运行rsync之前,使用-nv执行一个版本,该版本不进行任何更新,但显示将更新哪些文件。

从文件列表中,使用您的知识来匹配远程上可能已经存在缺失文件的位置,然后登录到远程并首先复制这些文件。

例如,-nv可能会显示以下所需的更新:

代码语言:javascript
运行
复制
ALLLibs/LibA/LibA.2
ALLLibs/LibA/LibA.2/file1

但是,如果您知道它可能是../LibA.1/file1的副本,那么编写一个脚本从LibA.1创建和填充LibA.2,并在远程上运行它。它可以像cp -rp一样简单。当您执行真正的rsync时,类似的文件将已经存在,更改后的文件将被更新。您将需要--delete来删除不应该存在的文件(请注意此选项:先用-n测试)。

在远程复制命令中要小心:复制一个文件通常会在新文件上设置一个新的时间戳。默认情况下,rsync比较大小和时间戳。如果它们不同,文件将被更新。使用rsync选项-c代替检查每个文件的和,以查看它是否不同。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/225998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档