文件比较方法及相关装置转让专利

申请号 : CN201911089235.1

文献号 : CN110929500B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张峰

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请提供一种文件比较方法及相关装置,属于计算机技术领域。该文件比较方法可以包括:确定第一文件和第二文件的文件类型;根据所述文件类型,确定所述第一文件和所述第二文件的比较信息;通过与所述比较信息对应的内容信息读取命令,获取所述第一文件和所述第二文件的内容信息;比较所述第一文件和所述第二文件的内容信息,得到比较结果。本申请的实施例有效提升文件比较的类型范围及比较灵活性。

权利要求 :

1.一种文件比较方法,其特征在于,应用于区块链中预设的文件比较终端,所述方法包括:在接收到文件比较指令时,根据所述文件比较指令中的第一终端的节点标识,向所述第一终端请求确定第一文件的文件类型,并根据所述文件比较指令中的第二终端的节点标识,向所述第二终端请求确定第二文件的文件类型,其中,所述第一终端为区块链中部署有Linux系统的区块节点设备,所述第二终端为所述区块链中部署有类UNIX系统的区块节点设备;

当确定第一文件与第二文件的文件类型不同时,则直接报错退出本次文件比较;

当所述第一文件和所述第二文件的文件类型均为常规文件,且所述第一文件和所述第二文件不为文本文件时,将第一文件描述信息作为比较信息,所述第一文件描述信息包括所述常规文件的创建日期、修改日期和文件大小中的一种或多种;

当所述第一文件和所述第二文件的文件类型为块设备文件、字符设备文件、命名管道文件及套接字文件中任一种时,将第二文件描述信息作为比较信息,所述第二文件描述信息用于指示设备、管道文件的相关描述介绍信息;

当所述第一文件和所述第二文件的文件类型均为符号链接文件时,基于各个符号链接指向的目标文件的文件类型确定比较信息;

通过与所述比较信息对应的内容信息读取命令,自所述第一终端获取所述第一文件的内容信息,自所述第二终端获取所述第二文件的内容信息,其中,所述内容信息是所述比较信息指示的待比较文件中用于比较的具体内容信息;

比较所述第一文件和所述第二文件的内容信息,得到比较结果。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

当所述文件类型为常规文件,且所述第一文件和所述第二文件为文本文件时,将文件内容作为所述比较信息;

当所述文件类型为目录文件时,将文件列表信息作为所述比较信息。

3.根据权利要求2所述的方法,其特征在于,所述通过与所述比较信息对应的内容信息读取命令,自所述第一终端获取所述第一文件的内容信息,自所述第二终端获取所述第二文件的内容信息,包括:当所述比较信息为文件内容时,通过第一命令自所述第一终端获取所述第一文件的内容信息,并通过所述第一命令自所述第二终端获取所述第二文件的内容信息;

当所述比较信息为第一文件描述信息时,通过第二命令自所述第一终端获取所述第一文件的内容信息,并通过所述第二命令自所述第二终端获取所述第二文件的内容信息;

当所述比较信息为文件列表信息时,通过第三命令自所述第一终端获取所述第一文件的内容信息,并通过所述第三命令自所述第二终端获取所述第二文件的内容信息;

当所述比较信息为第二文件描述信息时,通过第四命令自所述第一终端获取所述第一文件的内容信息,并通过所述第四命令自所述第二终端获取所述第二文件的内容信息。

4.根据权利要求1所述的方法,其特征在于,所述文件比较指令中包括所述第一文件的标识、所述第二文件的标识,所述第一文件位于所述第一终端上,所述第二文件位于所述第二终端上。

5.根据权利要求4所述的方法,其特征在于,所述向所述第一终端请求确定第一文件的文件类型,包括:根据所述第一终端的节点标识,基于安全网络协议远程从所述第一终端确定所述第一文件的文件类型;

根据所述第二终端的节点标识,基于安全网络协议远程从所述第二终端确定所述第二文件的文件类型。

6.根据权利要求4所述的方法,其特征在于,在根据所述第一终端的节点标识,基于安全网络协议远程从所述第一终端确定所述第一文件的文件类型之前,还包括:为所述第一终端的节点标识所对应的地址关联所述第一终端的端口号,用户名及密码;

为所述第二终端的节点标识所对应的地址关联所述第二终端的端口号,用户名及密码。

7.根据权利要求1所述的方法,其特征在于,所述比较所述第一文件和所述第二文件的内容信息,得到比较结果,包括:使用文本比较命令比较所述第一文件和所述第二文件的内容信息,得到比较结果。

8.根据权利要求1‑7任意一项所述的方法,其特征在于,所述第一文件为Linux系统中的文件,所述第二文件为类UNIX系统中的文件。

9.一种文件比较装置,其特征在于,包括:

第一确定模块,用于在接收到文件比较指令时,根据所述文件比较指令中的第一终端的节点标识,向所述第一终端请求确定第一文件的文件类型,并根据所述文件比较指令中的第二终端的节点标识,向所述第二终端请求确定第二文件的文件类型,其中,所述第一终端为区块链中部署有Linux系统的区块节点设备,所述第二终端为所述区块链中部署有类UNIX系统的区块节点设备;

第二确定模块,用于:

当确定第一文件与第二文件的文件类型不同时,则直接报错退出本次文件比较;

当所述第一文件和所述第二文件的文件类型均为常规文件,且所述第一文件和所述第二文件不为文本文件时,将第一文件描述信息作为比较信息,所述第一文件描述信息包括所述常规文件的创建日期、修改日期和文件大小中的一种或多种;

当所述第一文件和所述第二文件的文件类型为块设备文件、字符设备文件、命名管道文件及套接字文件中任一种时,将第二文件描述信息作为比较信息,所述第二文件描述信息用于指示设备、管道文件的相关描述介绍信息;

当所述第一文件和所述第二文件的文件类型均为符号链接文件时,基于各个符号链接指向的目标文件的文件类型确定比较信息;

获取模块,用于通过与所述比较信息对应的内容信息读取命令,自所述第一终端获取所述第一文件的内容信息,自所述第二终端获取所述第二文件的内容信息,其中,所述内容信息是所述比较信息指示的待比较文件中用于比较的具体内容信息;

比较模块,用于比较所述第一文件和所述第二文件的内容信息,得到比较结果。

10.一种文件比较终端,其特征在于,包括:

存储器,存储有计算机可读指令;

处理器,读取存储器存储的计算机可读指令,以执行如权利要求1‑8任意一项所述的方法。

11.一种计算机程序介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如权利要求1‑8任意一项所述的方法。

说明书 :

文件比较方法及相关装置

技术领域

[0001] 本申请涉及计算机技术领域,具体而言,涉及一种文件比较方法及相关装置。

背景技术

[0002] 文件比较就是对待比较的文件进行文件内容信息的比较,以确定两个文件之间的内容信息差异。目前,在进行文件比较时,通常可以使用文件比较命令比较出两个文本文件间增删改的差异,但是,往往只能够对两个文本文件进行比较,文件比较类型范围有限,文件比较灵活性较低,用户体验较差。
[0003] 需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0004] 本申请实施例的目的在于提供一种文件比较方法及装置,其能够有效提升文件比较的类型范围及比较灵活性。
[0005] 根据本申请的一个实施例,一种文件比较方法可以包括:确定第一文件和第二文件的文件类型;根据所述文件类型,确定所述第一文件和所述第二文件的比较信息;通过与所述比较信息对应的内容信息读取命令,获取所述第一文件和所述第二文件的内容信息;比较所述第一文件和所述第二文件的内容信息,得到比较结果。
[0006] 根据本申请的另一实施例,一种文件比较装置可以包括:第一确定模块,用于确定第一文件和第二文件的文件类型;第二确定模块,用于根据所述文件类型,确定所述第一文件和所述第二文件的比较信息;获取模块,用于通过与所述比较信息对应的内容信息读取命令,获取所述第一文件和所述第二文件的内容信息;比较模块,用于比较所述第一文件和所述第二文件的内容信息,得到比较结果。
[0007] 在本申请的一些实施例中,所述第二确定模块还被配置成:当所述文件类型为常规文件,且所述第一文件和所述第二文件为文本文件时,将文件内容作为所述比较信息;当所述文件类型为常规文件,且所述第一文件和所述第二文件不为文本文件时,将第一文件描述信息作为所述比较信息;当所述文件类型为目录文件时,将文件列表信息作为所述比较信息;当所述文件类型为块设备文件、字符设备文件、命名管道文件及套接字文件中任一种时,将第二文件描述信息作为所述比较信息;当所述文件类型为符号链接文件时,基于符号链接指向的目标文件确定所述比较信息。
[0008] 在本申请的一些实施例中,所述第二确定模块还被配置成:基于符号链接指向的目标文件的文件类型确定所述比较信息。
[0009] 在本申请的一些实施例中,所述获取模块还被配置成:当所述比较信息为文件内容时,通过第一命令获取所述第一文件和所述第二文件的内容信息;当所述比较信息为第一文件描述信息时,通过第二命令获取所述第一文件和所述第二文件的内容信息;当所述比较信息为文件列表信息时,通过第三命令获取所述第一文件和所述第二文件的内容信息;当所述比较信息为第二文件描述信息时,通过第四命令获取所述第一文件和所述第二文件的内容信息。
[0010] 在本申请的一些实施例中,还包括接收模块,所述接收模块被配置成:接收文件比较指令,所述文件比较指令中包括所述第一文件的标识、所述第二文件的标识以及目标终端的地址,所述第二文件位于所述目标终端上。
[0011] 在本申请的一些实施例中,所述第一确定模块还被配置成:从本地确定所述第一文件的文件类型;根据所述目标终端的地址,基于安全网络协议远程从所述目标终端确定所述第二文件的文件类型。
[0012] 在本申请的一些实施例中,所述获取模块还被配置成:从本地获取所述第一文件的内容信息;根据所述目标终端的地址,基于安全网络协议远程从所述目标终端获取所述第二文件的内容信息。
[0013] 在本申请的一些实施例中,还包括关联模块,所述关联模块被配置成:为所述目标终端的地址关联所述目标终端的端口号,用户名及密码。
[0014] 在本申请的一些实施例中,所述比较模块还被配置成:使用文本比较命令比较所述第一文件和所述第二文件的内容信息,得到比较结果。
[0015] 在本申请的一些实施例中,基于前述方案,所述第一文件和所述第二文件包括:Linux或类UNIX系统中的文件。
[0016] 根据本申请的另一实施例,一种文件比较终端可以包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行如上所述的方法。
[0017] 根据本公开的第四方面,公开一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的方法。
[0018] 根据本申请的实施例,能够自动识别待比较的文件的文件类型,根据不同文件类型列出不同属性比较信息的内容信息的差异,有效提升文件比较的类型范围和灵活性。在一些实施例中,还可以实现基于安全网络协议跨终端比较根据不同文件类型列出不同属性比较信息的内容信息的差异。
[0019] 本申请的其他特征和优点将通过下面结合附图的详细描述变得显然,或部分地通过本申请的实践而习得。
[0020] 应当理解,以上的一般描述和后文的详细描述仅是示例性和解释性的,并不旨在限制本申请。

附图说明

[0021] 图1示出了可以应用本申请实施例的系统的示意图。
[0022] 图2示出了根据本申请的一个实施例的文件比较方法的流程图。
[0023] 图3示出了根据本申请的又一个实施例的文件比较方法的流程图。
[0024] 图4A到图4C示出了一个实施例的相关技术中文件比较的应用场景中的终端界面图。
[0025] 图5示出了根据本申请一个实施例的一种应用场景下文件比较的流程图。
[0026] 图6A到图6E示出了图5所示实施例的文件比较的应用场景中的终端界面图。
[0027] 图7示出了根据图5所示实施例的文件比较装置的模块图。
[0028] 图8示出了根据本申请的一个实施例的文件比较装置的框图。
[0029] 图9示出了根据本申请的一个实施例的电子设备的框图。

具体实施方式

[0030] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
[0031] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
[0032] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0033] 附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0034] 图1示出了可以应用本申请实施例的系统100的示意图。
[0035] 如图1所示,系统100可以包括终端设备101、网络102、终端设备 103。终端设备101与终端设备103可以通过网络102进行通信。网络 102可以是有线网络、无线网络等。
[0036] 应该理解,图1中的终端设备、网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络。比如终端设备103可以是多个服务器组成的服务器集群或者多个终端组成的区块链网络等。
[0037] 申请者可以使用终端设备101获取本地文件的相关信息;还可以使用终端设备101通过网络102与终端设备103交互(基于安全网络协议 SSH进行交互),以远程获取终端设备103上的文件的相关信息。终端设备101可以为具有计算处理能力的各种设备,包括但不限于个人计算机、手机等。
[0038] 在本申请的一个实施例中,终端设备101可以确定第一文件和第二文件的文件类型;根据该文件类型,确定该第一文件和该第二文件的比较信息;通过与该比较信息对应的内容信息读取命令,获取该第一文件和该第二文件的内容信息;比较该第一文件和该第二文件的内容信息,得到比较结果。
[0039] 在本申请的一个实施例中,终端设备101还可以接收文件比较指令,该文件比较指令中包括第一文件的标识、第二文件的标识以及目标终端的地址,其中,第二文件位于目标终端上。
[0040] 可替换地,上述由服务器执行的操作也可以由终端设备执行。
[0041] 图2示意性示出了根据本申请的一个实施例的文件比较方法的流程图。该文件比较方法的执行主体可以是具有计算处理功能的电子设备,比如图1中所示的终端设备101。如图2所示,该文件比较方法可以包括步骤S210至步骤S240。
[0042] 步骤S210,确定第一文件和第二文件的文件类型;
[0043] 步骤S220,根据该文件类型,确定该第一文件和该第二文件的比较信息;
[0044] 步骤S230,通过与该比较信息对应的内容信息读取命令,获取该第一文件和该第二文件的内容信息;
[0045] 步骤S240,比较该第一文件和该第二文件的内容信息,得到比较结果。
[0046] 下面描述文件比较时,所进行的各步骤的具体过程。
[0047] 在步骤S210中,确定第一文件和第二文件的文件类型。
[0048] 第一文件和第二文件可以是任意类型的文件,例如,常规文件(可以包括普通文本文件及非文本文件)、目录文件、块设备文件、字符设备文件、命名管道文件及套接字文件等。第一文件和第二文件可以位于同一终端,例如,第一文件和第二文件都位于如图1所示的终端设备101 上。第一文件和第二文件也可以位于不同的终端上,例如,第一文件可以位于如图1所示的终端设备101上,第二文件可以位于如图1所示的终端设备103上。
[0049] 当第一文件和第二文件都位于本地时,可以直接在本地通过文件类型确定命令确定第一文件和第二文件的文件类型。当第一文件和第二文件中,部分文件位于本地,另一部分位于其它终端时,可以于本地通过安全网络协议(SSH)远程在其它终端执行文件类型确定命令,确定另一部分文件的文件类型。可以理解,第一文件和第二文件可以包括多个文件,例如,第一文件包括5个不同的文件,第二文件包括3个不同的文件。
[0050] 确定第一文件和第二文件的文件类型,可以使用文件类型确定命令进行。一示例性中,可以使用linux命令:ls‑l命令进行确定。例如,当第一文件的文件标识为FILE1时,可以通过使用ls‑l FILE1命令,返回 FILE1的相关信息:‑rw‑r‑‑r‑‑1tt root 45 jun 30 16:00FILE1。然后,通过相关信息中的第一个字符串“‑rw‑r‑‑r‑‑”的第一个首字符(文件属性) “‑”,结合文件类型确定表确定出FILE1的文件类型为“常规文件”,其中,文件类型确定表,例如:
[0051]
[0052]
[0053] 同理可以确定第二文件的文件类型。
[0054] 一种实施例中,在确定第一文件和第二文件的文件类型之前,还可以包括:确定目标位置是否存在第一文件和第二文件。
[0055] 目标位置可以是本地,也可以是与本地通过网络连接的远程终端。当第一文件和第二文件都位于本地时,可以直接在本地通过文件查询命令确定第一文件和第二文件是否存在。当第一文件和第二文件中,部分文件位于本地,另一部分位于与本地通过网络连接的远程终端时,可以于本地通过安全网络协议(SSH)远程在远程终端执行文件查询命令,确定远程终端中是否存在另一部分文件。可以理解,第一文件和第二文件可以包括多个文件,例如,第一文件包括5个不同的文件,第二文件包括3个不同的文件。
[0056] 文件查询命令可以是ls命令,例如,当文件的标识为FILE1时,使用ls FILE1命令即可得到返回的相关信息,如果相关信息为肯定结果,则表示查询到FILE1文件,如果为否定结果(例如,no such file or directory)表示没有查询到FILE1文件。
[0057] 一种示例中,如果确定目标位置不存在第一文件或者第二文件中的一个或者全部时,则直接报错退出本次文件比较。
[0058] 一种示例中,当确定第一文件与第二文件的文件类型不同时,则直接报错退出本次文件比较;当确定第一文件与第二文件的文件类型相同时,执行后续步骤。
[0059] 在步骤S220中,根据该文件类型,确定该第一文件和该第二文件的比较信息。
[0060] 比较信息可以是不同文件类型的待比较的文件(例如,该第一文件和该第二文件)进行比较的内容信息的信息,例如,内容信息为文本本身的内容信息时,比较信息可以是文件内容。比较信息可以是以信息标识的形式存在,例如,字符串或者名称等。文件类型与比较信息一一对应,根据第一文件与第二文件的文件类型可以确定出第一文件与第二文件的比较信息,进而在后续步骤中获取第一文件及第二文件的比较信息对应的内容信息。
[0061] 根据文件类型,确定该第一文件和该第二文件的比较信息,可以通过预设比较信息表确定,可以从预设比较信息表中查询到文件类型对应的比较信息,其中比较信息表,例如:
[0062]
[0063] 参考图3,一种实施例中,根据所述文件类型,确定所述第一文件和所述第二文件的比较信息,包括:
[0064] 步骤S310,当所述文件类型为常规文件,且所述第一文件和所述第二文件为文本文件时,将文件内容作为所述比较信息;
[0065] 步骤S320,当所述文件类型为常规文件,且所述第一文件和所述第二文件不为文本文件时,将第一文件描述信息作为所述比较信息;
[0066] 步骤S330,当所述文件类型为目录文件时,将文件列表信息作为所述比较信息;
[0067] 步骤S340,当所述文件类型为块设备文件、字符设备文件、命名管道文件及套接字文件中任一种时,将第二文件描述信息作为所述比较信息;
[0068] 步骤S350,当所述文件类型为符号链接文件时,基于符号链接指向的目标文件确定所述比较信息。
[0069] 需要说明的是,上述步骤S310‑步骤S350的没有固定执行顺序。根据文件类型执行相应文件类型对应的步骤即可,例如,当确定文件类型为目录文件时,直接执行步骤S330确定第一文件和第二文件的比较信息即可。
[0070] 常规文件可以包括文本文件,二进制文件,xml文件,db文件等。文件内容指示文本文件的内容本身;当文件类型为常规文件,且第一文件和第二文件为文本文件时,可以将文本文件的文件内容本身作为比较信息。第一文件描述信息指示常规文件(非文本)的相关描述介绍信息;当文件类型为常规文件,且第一文件和第二文件不为文本文件时,可以将第一文件描述信息作为比较信息,其中,第一文件描述信息可以包括文件的创建日期,修改日期,文件大小等信息。
[0071] 目录文件是实现文件目录的管理,将文件目录以文件的形式保存在外存空间,目录文件是长度固定的记录式文件。文件列表信息指示目录中文件包括的文件列表的信息。当文件类型为目录文件时,可以将文件列表信息作为比较信息。
[0072] 块设备文件、字符设备文件、命名管道文件及套接字文件等是与设备相关的文件,可以将第二文件描述信息作为比较信息,第二文件描述信息指示设备、管道文件的相关描述介绍信。
[0073] 符号链接文件仅包含有一个文本字符串,其被操作系统解释为一条指向另一个文件或者目录的路径。它是一个独立文件,其存在并不依赖于目标文件。如果删除一个符号链接,它指向的目标文件不受影响。如果目标文件被移动、重命名或者删除,任何指向它的符号链接仍然存在,但是它们将会指向一个不复存在的文件。可以基于符号链接文件的符号链接指向的真实的目标文件确定的比较信息。
[0074] 一种实施例中,基于符号链接指向的目标文件确定所述比较信息,包括:基于符号链接指向的目标文件的文件类型确定所述比较信息。
[0075] 可以通过readlink‑f命令,获取所述符号链接指向的目标文件。例如,当符号链接文件的标识为FILE1时,可以使用”readlink‑fFILE1”命令,获取到符号链接文件FILE1的符号链接指向的目标文件,然后基于步骤201中的方法确定目标文件的文件类型,并根据目标文件的文件类型,基于如图3所示的步骤,确定符号链接文件的比较信息。
[0076] 在步骤S230中,通过与该比较信息对应的内容信息读取命令,获取该第一文件和该第二文件的内容信息。
[0077] 内容信息是比较信息指示的待比较文件中用于比较的具体内容信息,例如,文本比较信息为文件内容时,获取的该第一文件和该第二文件的内容信息为第一文件及第二文件本身的内容信息。
[0078] 内容信息读取命令与比较信息一一对应。可以通过使用内容信息读取命令读取到第一文件及第二文件的内容信息。例如,当第一文件及第二文件为命名管道文件file1时,可以通过“stat file1”命令获取到命名管道文件file1的文件描述信息(例如,设备号等信息)。
[0079] 比较信息对应的内容信息读取命令可以通过预设命令表确定,其中预设命令表,例如:
[0080] 内容信息读取命令 比较信息cat 文件内容
ls‑l 第一文件描述信息
ls‑l 文件列表信息
stat 第二文件描述信息
[0081] 一种实施例中,通过与所述比较信息对应的内容信息读取命令,获取所述第一文件和所述第二文件的内容信息,包括:
[0082] 当所述比较信息为文件内容时,通过第一命令获取所述第一文件和所述第二文件的内容信息;
[0083] 当所述比较信息为第一文件描述信息时,通过第二命令获取所述第一文件和所述第二文件的内容信息;
[0084] 当所述比较信息为文件列表信息时,通过第三命令获取所述第一文件和所述第二文件的内容信息;
[0085] 当所述比较信息为第二文件描述信息时,通过第四命令获取所述第一文件和所述第二文件的内容信息。
[0086] 第一命令可以是cat命令,第二命令可以是ls‑l命令,第三命令可以是ls‑l命令,第四命令可以是stat命令。
[0087] 例如,当第一文件标识为file1,且比较信息为文件内容时,可以通过cat file1命令,获取到文件内容指示的第一文件file1的内容信息。当第一文件标识为file2,且比较信息第一文件描述信息时,可以通过ls‑l file2命令,获取到第一文件描述信息指示的第一文件file2的内容信息。当第一文件标识为file3,且比较信息为文件列表信息时,可以通过ls‑l file3命令,获取到文件列表信息指示的第一文件file3的内容信息。当第一文件标识为file4,且比较信息为第二文件描述信息时,可以通过stat file4命令,获取到第二文件描述信息的第一文件file4的内容信息。
[0088] 在步骤S240中,比较第一文件和第二文件的内容信息,得到比较结果。
[0089] 第一文件和第二文件的内容信息都以文本的形式获取到了本地(例如,图1所示的终端设备101),进而可以将两段信息存储成文本文件,对第一文件和第二文件的内容信息对应的文本文件进行比较,实现比较第一文件和第二文件的内容信息,得到比较结果。
[0090] 一种实施例中,比较第一文件和第二文件的内容信息,得到比较结果,包括:
[0091] 使用文本比较命令比较第一文件和第二文件的内容信息,得到比较结果。
[0092] 文本比较命令diff用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。基于文本比较命令diff可以准确地进行第一文件和第二文件的内容信息对应的文本文件的比较,找出第一文件和第二文件的区别结果。
[0093] 可以理解,当第一文件或/和第二文件为多个时,可以使用文件比较命令diff依次进行两两比较。
[0094] 一种实施例中,在确定第一文件和第二文件的文件类型之前,还包括:
[0095] 接收文件比较指令,该文件比较指令中包括第一文件的标识、第二文件的标识以及目标终端的地址,第二文件位于目标终端上。
[0096] 文件比较指令用于触发启动文件内容信息的比较流程。文件比较指令中包括的需要进行比价的文件的文件标识(第一文件的标识及第二文件的标识),以及某个文件位于与本地通过网络连接的远程终端(目标终端)上时,远程终端(目标终端)的地址。未指定地址的文件标识,默认指示本地文件(例如,第一文件的标识)。这样可以触发跨终端的文件内容信息的比较。
[0097] 例如,提供一种文件比较指令:rdiff FILE1 IP FILE2,此时,FILE1 默认为本地文件,地址IP对应于FILE2。其中FILE1是代表本机的任意存在的文件名,可以是linux的任意文件类型;IP代表指定要和哪个网络上可互通的终端进行文件比较,即比较的目标终端;FILE2代表目标终端的任意存在的文件名,表示要和目标终端的哪个文件进行比较,也可以是linux的任意文件类型。
[0098] 可以理解,可以通过文件比较指令:rdiff A B C,触发多个本地文件 A、B、C的内容信息的比较;可以通过文件比较指令:rdiff ip1 D ip2 E ip3 F,触发各地址ip1、ip2、ip3对应的目标终端上的多个文件D、E、F 的内容信息的比较;通过文件比较指令:rdiff ip1 M N ip2 G,触发地址 ip1对应的终端上的文件M及N与地址ip2对应的终端上的文件G的内容信息的比较。
[0099] 一种实施例中,确定第一文件和第二文件的文件类型,包括:
[0100] 从本地确定第一文件的文件类型;
[0101] 根据目标终端的地址,基于安全网络协议远程从目标终端确定第二文件的文件类型。
[0102] 第一文件位于本地时,可以直接在本地使用文件类型确定命令确定出第一文件的文件类型。
[0103] 第二文件位于与本地通过网络连接的目标终端时,可以根据目标终端的地址,基于安全网络协议SSH远程在目标终端执行文件类型确定命令来确定第二文件的文件类型。
[0104] SSH为Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。通过 SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
[0105] 一种实施例中,通过与比较信息对应的内容信息读取命令,获取第一文件和第二文件的内容信息,包括:
[0106] 从本地获取第一文件的内容信息;
[0107] 根据目标终端的地址,基于安全网络协议远程从目标终端获取第二文件的内容信息。
[0108] 第一文件位于本地时,可以直接在本地使用内容信息读取命令获取出第一文件的内容信息。
[0109] 第二文件位于与本地通过网络连接的目标终端时,可以根据目标终端的地址,基于安全网络协议SSH远程在目标终端执行内容信息读取命令来获取第二文件的内容信息。
[0110] 一种实施例中,在确定第一文件和第二文件的文件类型之前,还包括:
[0111] 为目标终端的地址关联目标终端的端口号,用户名及密码。
[0112] 为目标终端的地址关联目标终端的端口号,用户名及密码,可以在ssh 远程执行命令需要目标终端的地址IP,端口号,用户名和密码进行操作时,针对某个目标终端的IP地址,可以在本地记录下他的端口号,用户名和密码,根据IP自动使用端口号、用户名,并用expect的方式自动填写密码,即可以实现只输入IP这一必要参数通过ssh远程执行命令。
[0113] 一种实施例中,基于前述方案,第一文件和第二文件包括:
[0114] Linux或类UNIX系统中的文件。
[0115] 在Linux或类UNIX系统中,可以将一切系统内容当做文件,这样可以对Linux或类UNIX系统中的任意文件按照前述的方案实现文件内容信息的获取和比较。
[0116] 本示例的一个实施方式中,Linux系统可以部署于第一终端上,第一终端为区块链中的区块节点设备;类UNIX系统可以部署于第二终端上,所述第二终端为所述区块链中的区块节点设备。即第一终端是区块链中的一个节点;第二终端同样是区块链中的一个节点,通过区块链来实现在不同的终端上进行文件内容的获取和比较。
[0117] 具体地,对于区块链中的每个节点,均具有与其对应的节点标识,而且每个节点均可以存储有区块链中其他节点的节点标识,可以根据其他节点的节点标识(例如,节点IP地址),将节点的文件内容广播至区块链中的其他节点。可以在该第一终端上接收到文件比较指令(rdiff FILE1 IP2 FILE2,其中,IP2为所述第二终端的节点标识)时,根据文件比较指令中的第二终端的节点标识,向第二终端请求目标文件的文件内容(FILE2文件的文件内容),第二终端,在接收到该请求后,可以获取文件内容后共享至第一终端,进而在第一终端完成文件内容的比较。该示例中,也可以由第二终端接收文件比较指令,然后从第一终端请求文件内容,进行比较,也可以由,区块链中预设的文件比较终端接收文件比较指令(rdiff IP1 FILE1 IP2 FILE2,其中,IP1为所述第一终端的节点标识,IP2为所述第二终端的节点标识)。可以理解,该区块链可以由多个区块节点设备组成,例如,5个Linux系统的终端及3个类UNIX 系统的终端,可以根据需求对区块链中的多个终端上的文件实现文件内容比较。
[0118] 由于区块链具有去中心化及不可篡改的安全性等特性,通过区块链实现多个终端上的文件内容的比较,能够提高跨终端文件内容比较的安全性。
[0119] 根据本申请的实施例,能够自动识别待比较的文件的文件类型,根据不同文件类型列出不同属性比较信息的内容信息的差异,有效提升文件比较的类型范围和灵活性。在一些实施例中,还可以实现基于安全网络协议跨终端比较根据不同文件类型列出不同属性比较信息的内容信息的差异。进而,有效提升用户体验。
[0120] 相关技术中,通过linux上的的diff命令只能比较两个文本文件,对其他类型文件无法给出有效比较信息。而且通过diff命令只能够比较同一终端上的两个文本文件,可以得出两个文本文件间增删改的差异。
[0121] 图4A到图4C示出了一个实施例的相关技术中文件比较的应用场景中的终端界面图。
[0122] 如图4A所示,示出了文本文件1的内容。
[0123] 如图4B所示,示出了文本文件2的内容。
[0124] 如图4C所示,示出了使用diff 1.txt 2.txt命令,比较文本文件1和文本文件2的内容的结果。
[0125] 其中,diff 1.txt 2.txt可以添加参数进行比较,例如如图4C所述命令行参数中的‑y表示同样也显示文件内容间的相同部分,‑W 50表示栏宽。
[0126] 相关技术中,进行文件比较时,使用diff命令只能比较本机的文件,不能跨机器比较文件,而且只能比较文本文件的信息,文件比较类型范围有限,文件比较灵活性较低,用户体验较差。
[0127] 图5示出了根据本申请一个实施例的一种应用场景下文件比较的流程图。
[0128] 图6A到图6E示出了图5所示实施例的文件比较的应用场景中的终端界面图。
[0129] 图7示出了根据图5所示实施例的文件比较装置的模块图。
[0130] 结合图5、图6A到图6E及图7所示,
[0131] 开始,可以通过文件比较命令rdiff FILE1 IP2 FILE2在本地(如图7 所示的地址IP1对应的终端)触发开始进行文件(第一文件FILE1和第二文件FILE2)比较,其中,第二文件FILE2预定位于目标终端(如图 7所示的地址IP2对应的终端)。
[0132] (1)判断第一文件FILE1是否存在于本地,使用ls FILE1命令进行判断,如果显示如图6A所示:no such file or directory,则说明FILE1 不存在,则直接报错并结束。否则则说明FILE1存在。
[0133] (2)判断FILE1的文件类型,在本地使用linux命令ls‑l FILE1进行确定(如图7所示的IP1对应终端中的类型识别装置中进行),得到如图6B所示的结果,可以通过第一个字符串“‑rw‑r‑‑r‑‑”的第一个字符“‑”根据文件类型确定表确定为常规文件。
[0134] (3)得到FILE1的信息,FILE1是常规文件,则进一步通过file FILE1命令获得文件的内容类型,如果file命令返回的结果包含”text”字样,如图6C所示的结果,则说明是文本文件,那FILE1的信息结果通过使用cat FILE1命令获取FILE1的文件内容本身(如图7所示的 IP1对应终端中的类型1(常规文件且为文本文件的类型)信息获取装置中进行);否则只获取文件的创建日期,修改日期,文件大小等信息的文本描述。如果FILE1是设备文件,可以通过使用stat FILE1命令获取FILE1的信息,如图6D所示。
[0135] (4)确定第二文件FILE2是否存在,可以根据文件比较命令中目标终端的地址IP2,基于安全网络协议(SSH),通过如图7所示的连接IP1 与IP2对应终端的远程连接装置,通过ssh IP2远程在IP2对应终端中执行ls FILE2命令进行判断,进而确定IP2对应终端中存在第二文件 FILE2。否则,不存在的话报错并结束文件比较。
[0136] (5)远程判断FILE2的类型,可以根据文件比较命令中目标终端的地址IP2,基于安全网络协议(SSH),通过如图7所示的连接IP1与IP2 对应终端的远程连接装置,通过ssh IP2远程在IP2对应终端中执行linux 命令ls‑l FILE2进行确定(在如图7所示的IP2对应终端中的类型识别装置中进行),得到如图6E所示结果,可以通过第一个字符串“‑rw‑r‑‑r‑‑”的第一个字符“‑”根据文件类型确定表确定为常规文件。
[0137] (6)判断FILE1和FILE2的类型是否相同,如果相同,进行下一步,否则,报错并结束。
[0138] (7)远程得到FILE2信息,可以根据文件比较命令中目标终端的地址IP2,基于安全网络协议(SSH),通过如图7所示的连接IP1与IP2 对应终端的远程连接装置,通过ssh IP2远程在IP2对应终端中执行linux 命令通过使用cat FILE2命令获取FILE1的文件内容本身(如图7所示的IP2对应终端中的类型1(常规文件且为文本文件的类型)信息获取装置中进行)。
[0139] (8)比较FILE1和FILE2的信息,可以将FILE1和FILE2的信息获取到本地,以文本的形式获取到了本地,即可以将两段信息存储成文本文件A和B,然后使用diff A B命令进行比较FILE1和FILE2的信息 (在如图7所示的本地IP1对应终端中的信息比较装置中进行)得到差异信息。
[0140] (9)展示差异(在如图7所示的本地IP1对应终端中的差异信息展示装置)。
[0141] (10)结束本次文件比较。
[0142] 通过应用本申请的实施例,可以实现在本地与另一台终端上的文件进行比较,并自动识别要比较对象的类型,根据不同文件类型列出不同属性的差异。
[0143] 图8示出了根据本申请的一个实施例的文件比较装置的框图。
[0144] 如图8所示,文件比较装置400可以包括第一确定模块410、第二确定模块420、获取模块430及比较模块440。
[0145] 第一确定模块410可以用于确定第一文件和第二文件的文件类型;第二确定模块410可以用于根据所述文件类型,确定所述第一文件和所述第二文件的比较信息;获取模块
410可以用于通过与所述比较信息对应的内容信息读取命令,获取所述第一文件和所述第二文件的内容信息;比较模块410可以用于比较所述第一文件和所述第二文件的内容信息,得到比较结果。
[0146] 在本申请的一些实施例中,所述第二确定模块还被配置成:当所述文件类型为常规文件,且所述第一文件和所述第二文件为文本文件时,将文件内容作为所述比较信息;当所述文件类型为常规文件,且所述第一文件和所述第二文件不为文本文件时,将第一文件描述信息作为所述比较信息;当所述文件类型为目录文件时,将文件列表信息作为所述比较信息;当所述文件类型为块设备文件、字符设备文件、命名管道文件及套接字文件中任一种时,将第二文件描述信息作为所述比较信息;当所述文件类型为符号链接文件时,基于符号链接指向的目标文件确定所述比较信息。
[0147] 在本申请的一些实施例中,所述第二确定模块还被配置成:基于符号链接指向的目标文件的文件类型确定所述比较信息。
[0148] 在本申请的一些实施例中,所述获取模块还被配置成:当所述比较信息为文件内容时,通过第一命令获取所述第一文件和所述第二文件的内容信息;当所述比较信息为第一文件描述信息时,通过第二命令获取所述第一文件和所述第二文件的内容信息;当所述比较信息为文件列表信息时,通过第三命令获取所述第一文件和所述第二文件的内容信息;当所述比较信息为第二文件描述信息时,通过第四命令获取所述第一文件和所述第二文件的内容信息。
[0149] 在本申请的一些实施例中,还包括接收模块,所述接收模块被配置成:接收文件比较指令,所述文件比较指令中包括所述第一文件的标识、所述第二文件的标识以及目标终端的地址,所述第二文件位于所述目标终端上。
[0150] 在本申请的一些实施例中,所述第一确定模块还被配置成:从本地确定所述第一文件的文件类型;根据所述目标终端的地址,基于安全网络协议远程从所述目标终端确定所述第二文件的文件类型。
[0151] 在本申请的一些实施例中,所述获取模块还被配置成:从本地获取所述第一文件的内容信息;根据所述目标终端的地址,基于安全网络协议远程从所述目标终端获取所述第二文件的内容信息。
[0152] 在本申请的一些实施例中,还包括关联模块,所述关联模块被配置成:为所述目标终端的地址关联所述目标终端的端口号,用户名及密码。
[0153] 在本申请的一些实施例中,所述比较模块还被配置成:使用文本比较命令比较所述第一文件和所述第二文件的内容信息,得到比较结果。
[0154] 在本申请的一些实施例中,基于前述方案,所述第一文件和所述第二文件包括:Linux或类UNIX系统中的文件。
[0155] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0156] 图9示意性示出了根据本申请的一个实施例的电子设备的框图。
[0157] 需要说明的是,图9示出的电子设备500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0158] 如图9所示,电子设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机存取存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU 501、 ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口 505也连接至总线
504。
[0159] 以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN(局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O 接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
[0160] 特别地,根据本申请的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质 511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的各种功能。
[0161] 需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
[0162] 附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0163] 描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0164] 作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
[0165] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0166] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等) 执行根据本申请实施方式的方法。
[0167] 本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
[0168] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。