如何将本地文件夹与 7z 存档进行比较?
需要将内容与文件差异进行对比验证。
档案非常庞大,在这种情况下提取和比较不是一种选择。
答案1
fuse-7z 是一个选项
fuse-7z -r archivetest.7z /mnt/7zreadonly
fuse-7z 将把 7z 文件挂载为只读文件系统,然后您可以进行比较。
Fuse-Archive 位于https://github.com/google/fuse-archive也可以挂载 7z 文件。
答案2
除非提取 7z 文件,否则无法比较 7z 文件内容与本地文件夹内容的差异。这是无损压缩的副作用:无法与未压缩数据进行并排比较。
您可以查看 7z 存档内部以查看各个文件的哈希值,但无法准确确定该文件内部的哪些字节与存档外部的同一文件不同。这是哈希校验和的副作用:只能使用它来验证数据的完整性,而不能验证数据是否加密,您可以使用哈希校验和对其进行解密,从而恢复数据本身。我认为这也不是您想要的。
因此,最后的选择是,如果您无法提取巨大的 7z 存档,您可以再次存档本地文件夹,我假设创建另一个巨大的 7z 存档,然后将其哈希值与相关 7z 文件的哈希值进行比较,这将告诉您它们之间是否存在差异,但不会告诉您这些差异是什么,因为同样,考虑到您的场景限制,这是不可能的。
答案3
然后你必须分别提取每个文件并逐一验证。需要脚本能力。