使用7z命令行从zip存档中删除\\隐藏

问题描述 投票:0回答:1

我有一个zip存档,其中包含文件“ hidden”,可以通过7z命令行将其删除。在7zip GUI上,该文件显示在文件夹_(有效地_ \ hidden)中,但是在7z命令行文件上显示为\ hidden(每7z l Package.zip)

在GUI中删除文件夹_将从zip归档文件中删除隐藏文件和文件夹,从而产生zip文件的预期哈希值。 (单击GUI中的文件夹,单击“删除”)

但是,通过命令提示符删除文件会产生不同的哈希-意外的哈希。我尝试过:

  1. 使用通配符删除文件。

隐藏7z d file.zip -r

  1. 删除压缩文件中的所有文件,但我要保留的文件夹除外

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中完成的删除。

batch-file zip 7zip
1个回答
0
投票

您正在计算整个zip文件的哈希值。

散列值不同的可能原因是zip文件中存储了额外的元数据。这包括文件的修改时间。我不使用7z,所以不知道delete选项是否会更改时间戳。

而且,存储在zip文件中的文件的顺序可能不同。这又将导致哈希值不同。

如果您有权访问unzip,请尝试为每个zip文件运行unzip -lv CMD_Package.zip,看看是否有不同。

© www.soinside.com 2019 - 2024. All rights reserved.