我有一个zip存档,其中包含文件“ hidden”,可以通过7z命令行将其删除。在7zip GUI上,该文件显示在文件夹_(有效地_ \ hidden)中,但是在7z命令行文件上显示为\ hidden(每7z l Package.zip)
在GUI中删除文件夹_将从zip归档文件中删除隐藏文件和文件夹,从而产生zip文件的预期哈希值。 (单击GUI中的文件夹,单击“删除”)
但是,通过命令提示符删除文件会产生不同的哈希-意外的哈希。我尝试过:
隐藏7z d file.zip -r
7z d file.zip -xr!要保存的文件夹
[这两种方法都会导致散列,这与在GUI中删除文件夹不同。哈希的命令和结果(使用7z):
命令行更新的zip:
7z h "CMD_Package.zip"
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning
1 file, 29504 bytes (29 KiB)
CRC32 Size Name
-------- ------------- ------------
C1B4E111 29504 CMD_Package.zip
-------- ------------- ------------
C1B4E111 29504
Size: 29504
CRC32 for data: C1B4E111
GUI更新的zip:
7Z h GUI_Package.zip
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning
1 file, 29504 bytes (29 KiB)
CRC32 Size Name
-------- ------------- ------------
21A1DCB4 29504 GUI_Package.zip
-------- ------------- ------------
21A1DCB4 29504
Size: 29504
CRC32 for data: 21A1DCB4
为了脚本目的,我正在尝试在命令行中复制在GUI中完成的删除。
您正在计算整个zip文件的哈希值。
散列值不同的可能原因是zip文件中存储了额外的元数据。这包括文件的修改时间。我不使用7z,所以不知道delete选项是否会更改时间戳。
而且,存储在zip文件中的文件的顺序可能不同。这又将导致哈希值不同。
如果您有权访问unzip
,请尝试为每个zip文件运行unzip -lv CMD_Package.zip
,看看是否有不同。