如何仅将更改的字节从文件A复制到文件B?
我看到许多备份软件都具有此功能,但是我找不到有关如何执行此操作的任何信息。
假设我有一个500 Mb的文件,并有一个副本。如果我更改原始文件,则只想将更改的字节同步到克隆的文件。
这根本不是一件容易的事,这就是备份软件存在的原因。
最简单的情况是某个字节的值可以像这样改变:
文件:00 01 02 03 04
备份:00 01 99 03 04
[您可以很容易地发现第3个字节从02
更改为99
,如果文件中的更改完全一样,您可以简单地迭代两个文件的字节,只要看到任何字节的更改,您将其值更改为备份的值。
棘手(也是最不幸的是,最常见的情况)是字节可能被值[[和位置修改了。例如。如果您在文件的开头添加新的字节]
文件:77 00 01 02 03 04
备份:00 01 02 03 04
尽管表面上似乎只修改了一个字节,但从字节间比较的角度来看,我们看到的好像是
ALL
字节已更改。因此,我们需要有一个特殊的算法(实际上是Stack Overflow无法解决的),该算法能够匹配文件的更改部分,而不管这些部分的更改位置。