CN108228226B - 硬链接的差分方法、装置及相应终端 - Google Patents
硬链接的差分方法、装置及相应终端 Download PDFInfo
- Publication number
- CN108228226B CN108228226B CN201711476620.2A CN201711476620A CN108228226B CN 108228226 B CN108228226 B CN 108228226B CN 201711476620 A CN201711476620 A CN 201711476620A CN 108228226 B CN108228226 B CN 108228226B
- Authority
- CN
- China
- Prior art keywords
- list
- branch
- hard link
- directory
- link group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种硬链接的差分方法、装置及相应终端,该方法包括:提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对;根据在第二列表和第三列表中的比对结果对第二列表和第三列表执行相应的差分处理;本发明通过创建的各个列表依照第一目录中的各个硬链接组进行查找比对,能够把第二目录中的硬链接差分处理成与第一目录完全一致的情况,且差分过程简洁高效,达到了有效差分硬链接的目的。
Description
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种硬链接的差分方法、装置及相应终端。
背景技术
随着移动互联网技术的飞速发展,软件动态升级已经成为当前信息时代中软件持续使用的必然需求。所谓软件动态升级就是指移动设备在出厂上市到客户手中后,为了方便后期软件维护,移动设备生产商会推送系统补丁到手机,用户只要确认升级就可以把补丁应用于本系统,实现软件升级的目的。
一般推送补丁有两种方式,一种是把整个新文件的全部内容都通过网络推送到移动设备端。但是由于整个完整的文件尺寸较大,网络传输和本地存储都有压力,且耗费时间长,用户体验也很差。因此通常情况下,设备厂商推送的补丁不是整个的完整的文件,而是在已有文件的基础上实施部分修改后达到升级目的补丁包,即差分推送方式,就是把两个文件的不同内容推送过去。举个例子:
例如:原系统中有个文件的内容是123456789;
新系统中该文件的内容需要更改成1234567890;
可见,该文件的内容变化只有一个“0”,这时,显然差分推送更好,推送内容少,且能达到升级的效果。
差分升级需求广泛存在于移动互联网领域,目前,单独两个普通文件之间的差分方法已经很成熟,如上面提到的两个文件内容只相差“0”的例子,各个厂商和系统采用的差分手段都会有所差别,但大体原理都是相同的,已有一些算法可以处理两个普通文件之间的差分。
然而,通常一个系统或软件会包含很多内容,不只是一个普通文件,还包含很多额外因素,例如硬链接。如果第一目录中有a、b两个文件,且b文件是指向a文件的硬链接,而第二目录中也存在a、b两个文件,但是a文件和b文件是相互独立的两个普通文件。此时如果对两个目录做差分,现有的差分算法不会区别对待硬链接,而把硬链接全部看作普通文件,这种情况下的差分结果必然会发生错误。很多系统为了避免差分错误,都采取规避的办法,如:不让系统中使用硬链接。至今还没有有效的方法来正确差分硬链接。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明提供了一种硬链接的差分方法,包括如下步骤:
提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;
基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对;
根据在第二列表和第三列表中的比对结果对所述第二列表和所述第三列表执行相应的差分处理。
具体地,所述基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,包括:
基于所述第一列表中该硬链接组的任一分支,确定在所述第二列表的各个未处理的硬链接组中是否存在与所述任一分支对应的相关分支以及相关分支所在的相关硬链接组;
其中,所述任一分支与相关分支具有相同元素标识。
进一步地,所述基于在第二列表中的比对结果,在第三列表的文件中进行查找比对,包括:
若在第二列表中的比对结果为所述第二列表中不存在与所述任一分支对应的相关分支,则在所述第三列表中查找与所述任一分支对应的第一相关文件;
其中,所述任一分支与所述第一相关文件具有相同元素标识。
具体地,所述根据在第二列表和第三列表中的比对结果对所述第二列表和所述第三列表执行相应的差分处理,包括:
当所述第二列表中存在与所述任一分支对应的相关分支时,删除所述相关硬链接组中除所述相关分支外的其它分支,并标记所述相关硬链接组为已处理;
当所述第二列表中不存在与所述任一分支对应的相关分支时,将所述任一分支添加创建至所述第二目录;
在所述第三列表中查找到所述第一相关文件时,删除所述第一相关文件。
具体地,所述删除所述相关硬链接组中除所述相关分支外的其它分支,并标记所述相关硬链接组为已处理,还包括:
将所述任一分支的内容与所述相关分支的内容进行差分。
进一步地,所述差分方法还包括:
确定所述第一列表的该硬链接组中除所述任一分支外的其它分支;
将除所述任一分支外的其它分支添加创建至所述第二目录,并创建与所述任一分支的硬链接关系。
具体地,所述将除所述任一分支外的其它分支添加创建至所述第二目录,并创建与所述任一分支的硬链接关系,还包括:
在所述第三列表中查找与除所述任一分支外的其它分支对应的第二相关文件;
当所述第三列表中查找到第二相关文件时,删除所述第二相关文件。
进一步地,所述差分方法还包括:
当所述第一目录中的各个硬链接组完成比对后,删除所述第二目录中未处理的硬链接组。
本发明还提供了一种硬链接的差分装置,包括:
创建模块,用于提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;
查找比对模块,用于基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对;
差分处理模块,用于根据在第二列表和第三列表中的比对结果对所述第二列表和所述第三列表执行相应的差分处理。
本发明还提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的差分方法。
本发明提供的硬链接的差分方法、装置及相应终端,采用提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对;根据在第二列表和第三列表中的比对结果对第二列表和第三列表执行相应的差分处理;本发明通过创建更新后的目录对应的第一列表以及待更新目录对应的第二列表和第三列表,将第二列表及第三列表依照第一目标中的各个硬链接组进行查找比对,并根据查找比对结果对第二列表及第三列表进行差分处理,能够把第二目录中的硬链接差分处理成与第一目录完全一致的情况,且差分过程简洁高效,达到了有效差分硬链接的目的。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例提供的硬链接的差分方法的流程示意图;
图2a为本发明实施例提供的硬链接情形一的示例图;
图2b为本发明实施例提供的硬链接情形二的示例图;
图2c为本发明实施例提供的硬链接情形三的示例图;
图2d为本发明实施例提供的硬链接情形四的示例图;
图2e为本发明实施例提供的硬链接情形五的示例图;
图2f为本发明实施例提供的硬链接情形六的示例图;
图2g为本发明实施例提供的硬链接情形七的示例图;
图3为本发明实施例提供的硬链接的差分装置的框架示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图具体介绍本发明实施例的技术方案。
本发明实施例提供了一种硬链接的差分方法,如图1所示,包括如下步骤:
步骤S110:提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;步骤S120:基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对;步骤S130:根据在第二列表和第三列表中的比对结果对第二列表和第三列表执行相应的差分处理。
本发明实施例提供的硬链接的差分方法,创建更新后的目录对应的第一列表以及待更新目录对应的第二列表和第三列表,将第二列表及第三列表依照第一目标中的各个硬链接组进行查找比对,并根据查找比对结果对第二列表及第三列表进行差分处理,能够把第二目录中的硬链接差分处理成与第一目录完全一致的情况,且差分过程简洁高效,达到了有效差分硬链接的目的。
实际应用中,实现差分需要两个因素,一个是使用中的系统或软件,即待更新的文件,另一个是更新后的系统或软件。本发明实施例中,将这两个因素看作两个目录,其中,第一目录包含了更新后的系统或软件的全部硬链接相关的内容,第二目录里包含了待更新的系统或软件的全部硬链接相关的内容,实现硬链接的差分处理以及制作差分升级包只需要关注这两个目录即可。
在具体介绍本发明实施例的方法之前,先大体阐述一下硬链接:如图2a所示,假设A和B为硬链接,图中的小圆圈代表A和B的存储节点。A和B表面看是两个文件,实际上是具有相同存储节点的两个硬链接。修改其中任何一个硬链接的内容,另外一个硬链接的内容也随之改变。删除其中任何一个硬链接,存储节点不会删除,直到另一个,即最后一个硬链接都删除后,存储节点才会删除。共用一个存储节点的硬链接不仅限于两个,也可以是多个。
本发明实施例中,将共用一个存储节点的所有硬链接称为一个硬链接组,继续如图2a所示,显然A和B是同组的硬链接,将A和B称为这个硬链接组的两个分支。若某个硬链接组只有一个分支,如图2b所示,那么图中的C就是一个普通文件,普通文件也具有相应的存储节点。
通过上述介绍可以看出,硬链接不能直接看作普通文件进行差分,不然差分结果必然出现错误。
下面,对本发明实施例提供的硬链接的差分方法进行详细介绍,具体如下:
步骤S110中,提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表。
本发明实施例中,第一列表中包含了第一目录中的全部分支数大于一的硬链接组,第二列表中包含了第二目录中的全部分支数大于一的硬链接组,第三列表中包含了第二目录中的全部分支数等于一的文件。后续的差分过程都是基于第一列表与第二、三列表的比对,就可以充分示出两个目录中的硬链接的差异。
步骤S120中,基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对。
本发明实施例中,每个列表中的硬链接组或者文件按照预定的顺序进行排列,例如文件名的首字母、文件大小等,本发明实施例对具体的排列方式不做限制。
该步骤中,第一列表中的硬链接组按照预定的顺序进行处理,每个硬链接组都需要在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对。在预定的顺序对应的前一个硬链接组差分完成后,再对预定的顺序对应的后一个硬链接组进行处理。
同理,针对第一列表中的任一硬链接组,每次在第二列表中进行查找比对时,也是按照预定的顺序对第二列表中的硬链接组进行遍历,在第三列表中也按照预定的顺序对文件进行遍历,以保证对全部内容进行查找,防止遗漏。
针对第一列表中的任一硬链接组,在第二列表中进行查找比对过程中,根据第二列表中的比对结果,会对特定的硬链接组进行处理,并标记为已处理。具体的特定硬链接组的特征、处理方式、以及标记的时间点将在后文介绍。
具体而言,对于第一列表中的任一硬链接组,都是采用如下方式进行处理:
基于第一列表中该硬链接组的任一分支,确定在第二列表的各个未处理的硬链接组中是否存在与该任一分支对应的相关分支以及相关分支所在的相关硬链接组。
其中,该任一分支与相关分支具有相同元素标识,也就是说,确定相关分支的方式就是在第二列表中查找与该任一分支具有相同元素标识的相关分支,同时就能够确定相关分支所在的相关硬链接组。相同元素标识包括具有相同的文件名称等,本领域技术人员可以根据实际情况进行设置。
可以理解,该步骤简单来说就是查找第二列表中与第一列表中的该任一分支对应的分支,若没有查找到,即若在第二列表中的比对结果为第二列表中不存在与该任一分支对应的相关分支,则在第三列表中查找与该任一分支对应的第一相关文件,这是因为第一目录中的硬链接可能对应的是第二目录中的普通文件,因此在第三列表中进行查找比对,以便执行后续的差分步骤。
同理,该任一分支与第一相关文件具有相同元素标识。
步骤S130中,根据在第二列表和第三列表中的比对结果对第二列表和第三列表执行相应的差分处理。
具体而言,针对第一列表中的任一硬链接组,在第二列表中的比对结果为第二列表中存在与该任一分支对应的相关分支,或者第二列表中不存在与该任一分支对应的相关分支;在第三列表中的比对结果为在第三列表中能够查找到第一相关文件,或者在第三列表中不能查找到第一相关文件。
该步骤中,在第三列表中查找到第一相关文件时,删除该第一相关文件。
该步骤中,当第二列表中存在与该任一分支对应的相关分支时,删除该相关硬链接组中除相关分支外的其它分支,并标记该相关硬链接组为已处理。
由此可知,需要标记为已处理的特定硬链接组,就是第二列表中查找到的与第一列表中的该任一分支相对应的相关分支所在的相关硬链接组。在查找到时,就可以进行标记。该特定硬链接组的处理方式,就是将删除该相关硬链接组中除上述相关分支外的其它分支。作为示例地,如图2a所示,第一列表描述这个硬链接组中,针对A,在第二列表中进行查找比对,若第二列表中也找到了一个由A组成的硬链接组,例如A和B,或者A和C等,将第二列表描述的由A组成的硬链接组中的其它分支删除,即删除B或C,仅保留A。并标记这个第二列表描述的由A组成的硬链接组。
实际应用中,需要将第一列表中的该任一分支的内容与第二列表中的相关分支的内容进行差分,接上例,就是要保证两个A的内容相同。
该步骤中,当第二列表中不存在与该任一分支对应的相关分支时,将该任一分支添加创建至第二目录。
具体地,可以将该任一分支从第一目录中拷贝创建至第二目录中,接上例,就是保证第二目录中具有和第一目录中内容相同的A。
如图2a所示,若第一列表描述这个硬链接组中,包括A和B,依照上述步骤处理完A相关的步骤后,就可执行对B的操作。
本发明实施例中,需要确定第一列表的该硬链接组中除该任一分支外的其它分支,例如上例中的B。
随后,将除该任一分支外的其它分支添加创建至第二目录,并创建与该任一分支的硬链接关系。
接上例,就是在第二目录中添加创建B,并指向A的存储节点。这样,第二目录中就差分完成了与第一列表描述这个硬链接组完全相同的一个硬链接。
为了保证差分处理的完整性,本发明实施例中还需要确认第一列表的该硬链接组中除该任一分支外的其它分支是否对应的是第二目录中的普通文件,因此需要在第三列表中查找与除该任一分支外的其它分支对应的第二相关文件。
当第三列表中查找到第二相关文件时,删除第二相关文件。
至此,第一列表中描述的任一硬链接组就已经在第二目录中差分完成了,将第一目录中的每个硬链接组都按照上述过程进行操作,处理后的第二目录中,已经具有了第一目录中的全部硬链接组,并且对应硬链接的普通文件也全部都删除了。剩余的普通文件可能对应的是第一目录中的普通文件,可以按照现有的针对普通文件的差分算法进行处理。
实际应用中,可能存在第二目录中存在的硬链接组,而在第一目录中删去了。因此,本发明实施例提供的差分方法,还包括步骤:
当第一目录中的各个硬链接组完成比对后,删除第二目录中未处理的硬链接组。
由于第一目录中的各个硬链接组完成比对后,第二目录中仍然未处理的硬链接组意味着是在第一目录中不存在的,因此直接执行删除操作即可。
本发明实施例中,将记录上述各差分过程的步骤,而不实际对第二目录进行操作,得到的就是第一目录和第二目录中包含的各元素差分结果。使用时,将该差分结果应用于第二目录,就可以得到和第一目录完全一样的内容。
本发明实施例提供的硬链接的差分方法中,创建链接、删除链接等操作过程耗时很短,仅有的耗时操作在单个分支的处理部分,因此总的复杂度较低,整体差分方法的效率较高。
为了更清楚的解释本发明实施例,以下将举例介绍实际应用中可能出现的硬链接情形的处理步骤,大致分如下几类:
1)第一目录与第二目录中的硬链接组的分支相同,都包括如图2a所示的硬链接:
首先针对A,遍历第二列表中描述的硬链接组,找到第二列表中的相关分支A,标记相关分支A所在的相关硬链接组为已处理,并删除分支B。
确定第一列表的该硬链接组中除A外的其它分支B,将B添加创建至第二目录,并创建与A的硬链接关系。
2)第一目录中包括如图2a所示的硬链接,而第二目录中不存在A和B相关的任何内容:
首先针对A,遍历第二列表中描述的硬链接组,发现第二列表中不存在与A对应的相关分支,就将A添加创建至第二目录;
确定第一列表的该硬链接组中除A外的其它分支B,将B添加创建至第二目录,并创建与A的硬链接关系。
此时,第二目录中就生成了如图2a所示的硬链接。
3)第二目录中包括如图2a所示的硬链接,而第一目录中不存在A和B相关的任何内容:
第一目录中的各个硬链接组完成比对后,第二列表描述的该硬链接组仍然未处理,此时删除第二目录中的如图2a所示的硬链接组。
4)第一目录中包括如图2a所示的硬链接,而第二目录中的A和B以普通文件的形式存在,如图2c所示:
首先针对A,遍历第二列表中描述的硬链接组,发现第二列表中不存在与A对应的相关分支,就将A添加创建至第二目录;并在第三列表中查找第一相关文件A,删除查找到的第一相关文件A。
确定第一列表的该硬链接组中除A外的其它分支B,将B添加创建至第二目录,并创建与A的硬链接关系,并在第三列表中查找第二相关文件B,删除查找到的第二相关文件B。
此时,第二目录中就生成了如图2a所示的硬链接,并删除了普通文件A和B。
5)第二目录中包括如图2a所示的硬链接,而第一目录中的A和B以普通文件的形式存在,如图2c所示:
第一目录中的各个硬链接组完成比对后,第二列表描述的该硬链接组仍然未处理,此时删除第二目录中的如图2a所示的硬链接组。
第一目录中的普通文件按照现有的针对普通文件的差分算法进行处理。
6)第一目录中包括如图2a所示的硬链接,而第二目录中包括如图2d所示的硬链接,两者的分支数量不同:
首先针对A,遍历第二列表中描述的硬链接组,找到第二列表中的相关分支A,标记相关分支A所在的相关硬链接组为已处理,并删除分支B和C;
将第一列表中的A的内容与第二列表中的相关分支A的内容进行差分,保证两个A的内容相同;
确定第一列表的该硬链接组中除A外的其它分支B,将B添加创建至第二目录,并创建与A的硬链接关系。
此时,第二目录中就生成了如图2a所示的硬链接。
7)第一目录中包括如图2d所示的硬链接,而第二目录中包括如图2a所示的硬链接,两者的分支数量不同:
首先针对A,遍历第二列表中描述的硬链接组,找到第二列表中的相关分支A,标记相关分支A所在的相关硬链接组为已处理,并删除分支B;
将第一列表中的A的内容与第二列表中的相关分支A的内容进行差分,保证两个A的内容相同;
确定第一列表的该硬链接组中除A外的其它分支B和C,将B和C添加创建至第二目录,并创建与A的硬链接关系。
此时,第二目录中就生成了如图2d所示的硬链接。
8)第一目录中包括如图2a所示的硬链接,而第二目录中包括如图2e所示的硬链接,两者的分支有所不同:
首先针对A,遍历第二列表中描述的硬链接组,找到第二列表中的相关分支A,标记相关分支A所在的相关硬链接组为已处理,并删除分支C;
将第一列表中的A的内容与第二列表中的相关分支A的内容进行差分,保证两个A的内容相同;
确定第一列表的该硬链接组中除A外的其它分支B,将B添加创建至第二目录,并创建与A的硬链接关系。
此时,第二目录中就生成了如图2a所示的硬链接。
9)第一目录中包括如图2a以及图2f所示的多个硬链接,而第二目录中包括如图2e以及图2g所示的硬链接,两者的分支有交叉:
首先针对第一目录中的A,遍历第二列表中描述的硬链接组,找到第二列表中的相关分支A,标记相关分支A所在的相关硬链接组为已处理,并删除分支C;
将第一列表中的A的内容与第二列表中的相关分支A的内容进行差分,保证两个A的内容相同;
确定第一列表的该硬链接组中除A外的其它分支B,将B添加创建至第二目录,并创建与A的硬链接关系;
接着针对第一目录中的C,遍历第二列表中描述的未处理的硬链接组,未能查找到相关文件C,就将C添加创建至第二目录;
确定第一列表的该硬链接组中除C外的其它分支D,将D添加创建至第二目录,并创建与C的硬链接关系;
第一目录中的两个硬链接组完成比对后,第二列表描述的如图2g所示的硬链接仍然未处理,此时删除第二目录中的如图2g所示的硬链接组。
此时,第一目录和第二目录中的硬链接完全一致。
或者,该示例中还可以包括另一种差分情况:
首先针对第一目录中的A,遍历第二列表中描述的硬链接组,找到第二列表中的相关分支A,标记相关分支A所在的相关硬链接组为已处理,并删除分支C;
将第一列表中的A的内容与第二列表中的相关分支A的内容进行差分,保证两个A的内容相同;
确定第一列表的该硬链接组中除A外的其它分支B,将B添加创建至第二目录,并创建与A的硬链接关系;
接着针对第一目录中的D,遍历第二列表中描述的硬链接组,找到第二列表中的相关分支D,标记相关分支D所在的相关硬链接组为已处理,并删除分支B;
确定第一列表的该硬链接组中除D外的其它分支C,将C添加创建至第二目录,并创建与D的硬链接关系;
此时,第一目录和第二目录中的硬链接完全一致。
本领域技术人员应能理解上述几种差分方法的具体应用仅为举例,基于这些范例进行的适当变化也可适用于本发明,故也应包含在本发明保护范围以内。
本发明实施例提供的硬链接的差分方法,创建更新后的目录对应的第一列表以及待更新目录对应的第二列表和第三列表,将第二列表及第三列表依照第一目标中的各个硬链接组进行查找比对,并根据查找比对结果对第二列表及第三列表进行差分处理,能够把第二目录中的硬链接差分处理成与第一目录完全一致的情况,且差分过程简洁高效,达到了有效差分硬链接的目的。
本发明实施例提供了一种硬链接的差分装置,如图3所示,包括:
创建模块310,用于提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;
查找比对模块320,用于基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对;
差分处理模块330,用于根据在第二列表和第三列表中的比对结果对第二列表和第三列表执行相应的差分处理。
具体地,查找比对模块320具体用于基于第一列表中该硬链接组的任一分支,确定在第二列表的各个未处理的硬链接组中是否存在与该任一分支对应的相关分支以及相关分支所在的相关硬链接组;
其中,该任一分支与相关分支具有相同元素标识。
进一步地,查找比对模块320具体用于若在第二列表中的比对结果为第二列表中不存在与该任一分支对应的相关分支,则在第三列表中查找与该任一分支对应的第一相关文件;
其中,该任一分支与第一相关文件具有相同元素标识。
具体地,差分处理模块330具体用于当第二列表中存在与该任一分支对应的相关分支时,删除该相关硬链接组中除相关分支外的其它分支,并标记该相关硬链接组为已处理;
以及,差分处理模块330具体用于当第二列表中不存在与该任一分支对应的相关分支时,将该任一分支添加创建至第二目录;
以及,差分处理模块330具体用于在第三列表中查找到第一相关文件时,删除第一相关文件。
具体地,差分处理模块330具体用于将该任一分支的内容与相关分支的内容进行差分。
进一步地,差分处理模块330具体用于确定第一列表的该硬链接组中除该任一分支外的其它分支;
以及,差分处理模块330具体用于将除该任一分支外的其它分支添加创建至第二目录,并创建与该任一分支的硬链接关系。
具体地,查找比对模块320还具体用于在第三列表中查找与除该任一分支外的其它分支对应的第二相关文件;
差分处理模块330具体用于当第三列表中查找到第二相关文件时,删除第二相关文件。
进一步地,差分处理模块330还具体用于当第一目录中的各个硬链接组完成比对后,删除第二目录中未处理的硬链接组。
本发明实施例所提供的装置可以为设备上的特定硬件或者加载于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。
本发明实施例提供的硬链接的差分装置,通过创建更新后的目录对应的第一列表以及待更新目录对应的第二列表和第三列表,将第二列表及第三列表依照第一目标中的各个硬链接组进行查找比对,并根据查找比对结果对第二列表及第三列表进行差分处理,能够把第二目录中的硬链接差分处理成与第一目录完全一致的情况,且差分过程简洁高效,达到了有效差分硬链接的目的。
本发明实施例还提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的差分方法。
该终端可以为包括计算机、手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备。
其中,存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器是控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据,从而对终端进行整体监控。可选的,处理器可包括一个或多个处理单元;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。
本发明实施例还提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的差分方法。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种硬链接的差分方法,其特征在于,包括如下步骤:
提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;
基于第一列表中的任一硬链接组,在第二列表的未处理的硬链接组中进行查找比对,并基于在第二列表中的比对结果,对所述第二列表的至少一个硬链接组进行差分处理,并标记为已处理;
基于在第二列表中的比对结果,在第三列表的文件中进行查找比对,对所述第三列表执行相应的差分处理。
2.根据权利要求1所述的差分方法,其特征在于,所述基于第一列表中的任一硬链接组,在第二列表的硬链接组中进行查找比对,包括:
基于所述第一列表中该硬链接组的任一分支,确定在所述第二列表的各个未处理的硬链接组中是否存在与所述任一分支对应的相关分支以及相关分支所在的相关硬链接组;
其中,所述任一分支与相关分支具有相同元素标识。
3.根据权利要求2所述的差分方法,其特征在于,所述基于在第二列表中的比对结果,在第三列表的文件中进行查找比对,包括:
若在第二列表中的比对结果为所述第二列表中不存在与所述任一分支对应的相关分支,则在所述第三列表中查找与所述任一分支对应的第一相关文件;
其中,所述任一分支与所述第一相关文件具有相同元素标识。
4.根据权利要求3所述的差分方法,其特征在于,所述根据在第二列表和第三列表中的比对结果对所述第二列表和所述第三列表执行相应的差分处理,包括:
当所述第二列表中存在与所述任一分支对应的相关分支时,删除所述相关硬链接组中除所述相关分支外的其它分支,并标记所述相关硬链接组为已处理;
当所述第二列表中不存在与所述任一分支对应的相关分支时,将所述任一分支添加创建至所述第二目录;
在所述第三列表中查找到所述第一相关文件时,删除所述第一相关文件。
5.根据权利要求4所述的差分方法,其特征在于,所述删除所述相关硬链接组中除所述相关分支外的其它分支,并标记所述相关硬链接组为已处理,还包括:
将所述任一分支的内容与所述相关分支的内容进行差分。
6.根据权利要求4所述的差分方法,其特征在于,还包括:
确定所述第一列表的该硬链接组中除所述任一分支外的其它分支;
将除所述任一分支外的其它分支添加创建至所述第二目录,并创建与所述任一分支的硬链接关系。
7.根据权利要求6所述的差分方法,其特征在于,所述将除所述任一分支外的其它分支添加创建至所述第二目录,并创建与所述任一分支的硬链接关系,还包括:
在所述第三列表中查找与除所述任一分支外的其它分支对应的第二相关文件;
当所述第三列表中查找到第二相关文件时,删除所述第二相关文件。
8.根据权利要求1-7任一项所述的差分方法,其特征在于,还包括:
当所述第一目录中的各个硬链接组完成比对后,删除所述第二目录中未处理的硬链接组。
9.一种硬链接的差分装置,其特征在于,包括:
创建模块,用于提取第一目录中分支数大于一的硬链接组,创建第一列表,并提取第二目录中分支数大于一的硬链接组,创建第二列表,以及提取第二目录中分支数等于一的文件,创建第三列表;
查找比对模块,用于基于第一列表中的任一硬链接组,在第二列表的未处理的硬链接组中进行查找比对,并基于在第二列表中的比对结果,在第三列表的文件中进行查找比对;
差分处理模块,用于根据在第二列表中的比对结果,对所述第二列表的至少一个硬链接组进行差分处理,并标记为已处理;根据在第二列表中的和第三列表中的比对结果对所述第三列表执行相应的差分处理。
10.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-8任一项所述的差分方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711476620.2A CN108228226B (zh) | 2017-12-29 | 2017-12-29 | 硬链接的差分方法、装置及相应终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711476620.2A CN108228226B (zh) | 2017-12-29 | 2017-12-29 | 硬链接的差分方法、装置及相应终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228226A CN108228226A (zh) | 2018-06-29 |
CN108228226B true CN108228226B (zh) | 2021-07-13 |
Family
ID=62647101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711476620.2A Active CN108228226B (zh) | 2017-12-29 | 2017-12-29 | 硬链接的差分方法、装置及相应终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228226B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287181A (zh) * | 2019-07-01 | 2019-09-27 | 网联清算有限公司 | 数据清理方法、装置、电子设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714755A (zh) * | 2013-12-13 | 2015-06-17 | 华为技术有限公司 | 一种快照管理方法及装置 |
CN105573780A (zh) * | 2015-12-08 | 2016-05-11 | 北京元心科技有限公司 | 一种基于容器的移动终端操作系统升级方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508740A (zh) * | 2011-10-26 | 2012-06-20 | 上海文广互动电视有限公司 | 文件系统远程复制方法 |
EP2880554A1 (en) * | 2012-10-11 | 2015-06-10 | Hitachi, Ltd. | Migration-destination file server and file system migration method |
US9229942B1 (en) * | 2012-12-11 | 2016-01-05 | Emc Corporation | Method and system for hard link handling for incremental file migration |
CN103761170B (zh) * | 2014-01-27 | 2017-04-12 | 北京奇虎科技有限公司 | 系统文件恢复方法及装置、系统 |
CN104462290B (zh) * | 2014-11-27 | 2017-10-10 | 华为技术有限公司 | 文件系统复制方法及装置 |
-
2017
- 2017-12-29 CN CN201711476620.2A patent/CN108228226B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714755A (zh) * | 2013-12-13 | 2015-06-17 | 华为技术有限公司 | 一种快照管理方法及装置 |
CN105573780A (zh) * | 2015-12-08 | 2016-05-11 | 北京元心科技有限公司 | 一种基于容器的移动终端操作系统升级方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108228226A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI740901B (zh) | 執行資料恢復操作的方法及裝置 | |
US10423585B2 (en) | Method and device for making differential upgrade package, and method and device for system differential upgrading | |
US20170161297A1 (en) | Data synchronization in a storage network | |
CN103473277B (zh) | 文件系统的快照方法和装置 | |
CN103559301A (zh) | 更新数据的方法、数据库触发器和搜索引擎 | |
CN107066303B (zh) | 固件比对方法和装置 | |
CN105187475A (zh) | 数据同步的方法和系统 | |
CN105260639A (zh) | 一种脸部识别系统的数据更新的方法及装置 | |
CN102360410A (zh) | 文件系统的用户操作发现方法和应用该方法的同步系统 | |
CN105900093A (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN110535776B (zh) | 网关限流方法、装置、网关、系统及存储介质 | |
CN110333876A (zh) | 一种数据清除方法及控制设备 | |
CN116578746A (zh) | 对象去重方法及装置 | |
WO2022082891A1 (zh) | 大数据采集方法、系统、计算机设备及其存储介质 | |
CN104331343A (zh) | 文件备份方法和系统 | |
CN108762979B (zh) | 一种基于匹配树的终端信息备份方法及备份设备 | |
CN110532006B (zh) | 一种基于状态机的复杂配置文件升级方法 | |
CN108133026B (zh) | 一种多数据的处理方法、系统及存储介质 | |
CN108228226B (zh) | 硬链接的差分方法、装置及相应终端 | |
CN108664255B (zh) | 一种软件升级方法及装置 | |
CN111708835B (zh) | 区块链数据存储方法及装置 | |
CN104063377A (zh) | 信息处理方法和使用其的电子设备 | |
US10242025B2 (en) | Efficient differential techniques for metafiles | |
CN105260423A (zh) | 电子名片去重方法及装置 | |
CN112163024B (zh) | 一种基于层级关联结构的配置信息导出和导入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230427 Address after: Room 401, Floor 4, No. 2, Haidian East Third Street, Haidian District, Beijing 100080 Patentee after: Yuanxin Information Technology Group Co.,Ltd. Address before: 100176 room 2222, building D, building 33, 99 Kechuang 14th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee before: YUANXIN TECHNOLOGY |