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.warunzip

JavaEE WARファイルを作成する場合は、.NET Frameworkjarではなくこのツール(またはビルドツール用のプラグイン)を使用する必要があります。zip7za

答え2

質問(およびコメント)には2種類のプログラムがあります。

  • アーカイバー(内容を圧縮する)
  • コンプレッサー(個々のファイルを圧縮)

通常、最新のアーカイバー/圧縮機は、以前のツールで作成されたファイルをアーカイブ/圧縮解除できます。例えば、info-zip(zip / unzip)は処理を処理するために作成されました。pkzip(MS-DOS用ユーティリティ)。 7zipinfo-zipで生成されたファイルを処理できる別の最新のアーカイバーです。

gzip(GNU-zip)は上記のツールとは無関係のコンプレッサーです。似たような時期に書かれたけどinfo-zip、置き換えるために書かれたものです。compressそしてuncompress(Unixユーティリティ)。最後は標準のUnixユーティリティです。その他は標準化されていません。

関連情報