使用 7za 压缩的文件无法使用 zip 实用程序解压缩

使用 7za 压缩的文件无法使用 zip 实用程序解压缩

我使用名为 test.war 的 7za 命令创建了此文件

# file test.war
test.war: 7-zip archive data, version 0.4

我正在尝试使用命令在另一台 RHEL 计算机中提取此文件:

# unzip test.war
Archive:  test.war
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of test.war or
        test.war.zip, and cannot find test.war.ZIP, period.

这是否意味着我无法解压缩使用 7zip 创建的文件?

答案1

在这种特殊情况下,不,您无法使用unzip;提取文件。你需要使用7za它来提取它。

默认情况下,7za创建7z 格式档案。它还可以创建 zip 格式的档案,可以使用unzip;进行提取。为此,请指定带有.zip扩展名的存档,或使用以下命令指定类型-tzip

7za a -tzip test.war ...

这将生成一个test.war可以使用unzip.

请注意,如果您要创建 JavaEE WAR 文件,您jar无论如何都应该使用该工具(或适合您的构建工具的插件),而不是zip7za.

答案2

该问题(和评论)提到了两种类型的程序:

  • 归档器(压缩其内容)
  • 压缩器(压缩单个文件)

一般来说,后来的归档器/压缩器可以解归档/解压缩由旧工具编写的那些文件。例如,info-zip(zip/unzip) 的编写目的是处理由pkzip(MS-DOS 的实用程序)。 7zip是另一个较晚的归档器,它可以处理由 info-zip 创建的文件。

gzip(GNU-zip) 是一个压缩器,与上述任何工具无关。虽然大约是在同一时间写成的info-zip,它是为了替换而编写的compressuncompress(Unix 实用程序)。最后这些是标准的 Unix 实用程序;其他都没有标准化。

相关内容