以差异方式维护哈希码(校验和)文件

以差异方式维护哈希码(校验和)文件

假设您有一个包含一百万个文件的文件层次结构(可以是备份)。

正如所述https://askubuntu.com/questions/318530/generate-md5-checksum-for-all-files-in-a-directory 可以使用以下任何命令来创建“checklist.chk”文件哈希码姓名每行:

md5sum * > checklist.chk        # Doesn't go down sub directories
# or
find -type f -exec md5sum "{}" + > checklist.chk   # Do go down sub directories

然后检查您可以使用的文件:

md5sum -c checklist.chk

现在假设您只更改了其中几百万个文件中的几个(可能是因为您使用了 rsync)。那么似乎没有必要重新计算所有哈希码。

我正在寻找使用包含四列的“checklist.chk”文件的东西(程序,脚本或其他任何东西):哈希码修改日期尺寸姓名在每一行上。与 rsync 非常相似,它会跳过大小/修改日期未发生改变的文件。

然后稍后您当然应该通过调用与 '''md5sum -c checklist.chk''' 对应的程序来实际检查文件的完整性。

或者有更好的方法来解决整个问题。

答案1

所以我编写了自己的程序:https://github.com/emandersson/hashcodefilesync执行上述操作(加快哈希文件的更新速度)。

相关内容