用linux创建1个文件同步器(shell语言编写)

1.简单同步器设计要求我们需要设计1个同步器能够浏览两棵平行树A和B。对于任何的p文件,它可以依次判断并执行以下操作:1如果p/A是目录文件,而p/B是普通文件,或反之,... 1.简单同步器设计要求

我们需要设计1个同步器能够浏览两棵平行树A和B。对于任何的p文件,它可以依次判断并执行以下操作:

1如果p/A是目录文件,而p/B是普通文件,或反之,则存在冲突。

2如果p/A和p/B都是目录文件,则递归下降。

3如果p/A和p/B具有相同的类型、大小和最后修改日期的普通文件,那么同步成功,不做修改。

4如果p/A的日志文件和p/B不1致,即p/A已改变,则要用p/A的内容、类型、最后修改日期覆盖p/B;反之亦然。

5最后,如果p/A和p/B都是普通文件,且都与日志文件不1致(因为p没有进入路径,这是因为它与两个文件不匹配),则存在冲突。

同步器重写带有常规文件数据的日志文件时,能够与数据的常规文件同步。

需要注意两棵树在文件系统中可能有不同的顺序,它可能在是A中是p和q的顺序,而在B中是q和p。

为了处理这种冲突,需要简单地列出同步器1次工作后出现的冲突列表,并要求用户做出选择。如果这些文件是文本文件,则可以查看这两个文件之间的差异(例如,通过执行diff命令)。

2.比较内容的同步器

如果文件在两侧以同样的方式被修改,按照上述操作同步器会误判为冲突。此时,同步器应对两个文件中的内容进行比较;如果他们是相同的,则

1如果这两个文件的元数据也是相同的,那么无需修改,同步成功;

2如果两个文件中的1个文件的元数据与存储在日志上的元数据是相同的,这那么判断为另1个文件的元数据发生改变,我们要修改前者(与日志1致的那个文件)的数据,以保证同步成功;

3如果元数据不同,这两个文件发生冲突,但只在元数据上发生,我们需要通过询问用户来更改。

当然,上述任1操作完成后,其结果都要存储在日志文件中。

3.其他要求

可以对同步器作相关操作完善。例如:处理符号链接(用户可以选择链接本身或取消链接)。

用户界面可自行设计。尤其是,我们可以认为实现1个用户接口,在发生冲突的情况下,推出的差异计算工具。

我们也可以设想如何处理可能出现的情况,如在同步过程中树A和树B同时发生更改。
展开
 我来答
百度网友db8cea971
2013-02-13 · TA获得超过182个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:210万
展开全部
好好研究rsync吧,这个完全可以满足你的需求!
追问
没太明白,这个是类unix系统里面都带有的程序么?
我们的要求是要写程序,并不是自己用的,可是没有找到rsync的相关程序语言编写~
追答
rsync 是个同步工具,用c语言开发的,你上面提到的需求rsync都能办到,就是在用户交互上要根据你自己的需求更改了。http://rsync.samba.org/download.html 这个页面有源码的下载。
kafied
2013-02-19 · TA获得超过5084个赞
知道大有可为答主
回答量:1.6万
采纳率:0%
帮助的人:4794万
展开全部
良好的学习rsync的,这充分满足您的需求!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
碧草青剑
2013-02-25 · TA获得超过1047个赞
知道小有建树答主
回答量:6076
采纳率:0%
帮助的人:1501万
展开全部
良好的学习rsync的,充分满足您的需求!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
4gvj
2013-02-17
知道答主
回答量:10
采纳率:0%
帮助的人:7.2万
展开全部
怎么看都像是...rsync...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式