修改zip文件的md5哈希值的最快方法
问题描述:
我有大约500个zip文件,我必须放置在目录中以便进程处理它们。修改zip文件的md5哈希值的最快方法
进程在处理文件之前计算文件的md5散列值。如果文件的散列值与它知道的(存储在数据库中)相同,它会忽略该zip文件并继续下一个。
每个压缩文件包含两个文件:
- 的Excel文档
- 与有关Excel文件的一些元数据
作为测试的一部分,我需要处理所有压缩的XML文件文件几次。目前,为了让进程不会忽略它们,我只是在运行测试前清除数据库中的哈希值。
有没有一种方法可以运行测试而不必清除记录的散列值?我尝试重命名zip文件,但似乎并没有改变哈希值。
是否有一种快速方法对zip文件中的文件进行更改,以便每次更改散列值(使用Unix或Windows中的任何工具)?作为一个例子,如果我提取所有文件(每个文件夹在它自己的文件夹中),是否有一种方法可以对xml进行一些小改动,然后重新压缩文件(假设它会更多棘手的更新Excel文档)?
感谢
答
您可以更改的zip文件(-z
或--archive-comment
选项)的评论。该评论存储在zip文件的末尾,不改变存储里面的文件:
md5sum test.zip # e5d3c08c0c45d1cbdd0760af0b29e8e0
echo "test at $(date)"|zip --archive-comment test.zip
md5sum test.zip # b13fd1f3b75561eec68fdfde0c26a466
+0
谢谢你完美的使用(使用-z选项)。 – ziggy
我不看你怎么创造的任何进程修改文件,所以它会产生一个新的哈希值** + **实际计算散列值的时间可以比数据库中的更新表集合hashed_flag = false更快(或更容易)。现在可以开始解决更紧迫的问题了;-)祝你好运。 – shellter
是的,我明白你的观点。对于日常开发,开发人员可以清除哈希值。对于正式的端到端功能测试,清除哈希表是作弊:) – ziggy
很高兴被证明是错误的,'-z'是对文件的快速修改。我没有意识到你的意思是测试(用大写的T)。我向你致敬!祝大家好运(我确实答复了答案) – shellter