我们需要比较我们拥有的 2 个 .zip 文件中的每一个文件的内容。每个 .zip 文件都有不同的文件扩展名。每个 .zip 文件还包含另一个 .zip 文件和几个子目录。
我们没有能力使用zipcomp
实用程序。我们如何比较 2 个 zip 文件中的所有文件,并将相同的文件显示在matching.txt
输出文件中,将不相同的文件显示在non-matching.txt
输出文件中?
整个想法是找出由一次构建生成的 zip 文件中的哪些文件在之后的另一次构建运行中发生了更改/修改。
答案1
命令unzip -lv file.zip
打印文件的内容file.zip
,包括存档中每个文件的 CRC32 校验码(unzip
Windows 系统请从http://info-zip.org或者Sourceforge)。
有了这个,你可以简单地使用
unzip -lv file1.zip > list1.txt
unzip -lv file2.zip > list2.txt
并使用 或 之类的实用程序比较list1.txt
vs的内容。如果您想要更自动化的方法,您可以编写简单的 Perl 或 Python 脚本来比较这些列表文件(提示 - 对 打印的每个文件 CRC32 使用 Perl 哈希或 Python 字典。list2.txt
diff
diffuse
unzip -lv