web-dev-qa-db-ja.com

Linuxで「tar」が「.Zip」の場合のエラー

Mac OSXのディレクトリをZipコマンドラインと-rオプションを使用して圧縮しました。 Linuxで動作するクラスターにscp.Zipします。

.Zipを解凍しようとすると

tar -vxzf foo.Zip

私のマシンでは動作します。ただし、同じコマンドはクラスターでは機能しません。エラーが出る

gzip: stdin has more than one entry--rest ignored
tar: Child returned status 2
tar: Error is not recoverable: exiting now

この問題を解決するにはどうすればよいですか?

14
Remi.b

tarコマンドは、ZARファイルではなく、TARアーカイブを解凍するためのものです。 unzipの代わりにtarコマンドを使用する必要があります:

unzip foo.Zip

またはtar.gz Zipファイルの代わりにMac側のアーカイブ

tar -cvzf foo.tar.gz ....

linux側で既存のtarコマンドを使用して解凍できます。

28
Ian Roberts

このエラー:

gzip: stdin has more than one entry--rest ignored

tarがgipアーカイブであるかのようにZipアーカイブを解凍しようとしていることを意味します。これは常に機能するとは限りません(「 Zipで作成されたファイルは、 'deflation'メソッドで圧縮された単一のメンバー " 詳細については)。

代わりにunzip foo.Zipを使用してZipアーカイブを解凍する必要があります。

6
tux3

標準GNU tar.Zipファイルを直接処理しません。MacOSXが処理することに驚いています。

問題は、targzipファイルの処理方法を知っていることです。これはnot Info-Zip(.Zip)形式ですファイル。 Info-Zipファイルは、アーカイブと圧縮の両方を処理するように設計されていますが、tarは処理しません。 (ほとんどのtar実装は、コマンドラインオプションに基づいて、適切なコンプレッサー/デコンプレッサーでtarファイルをフィルターします。)

代わりに、クラスターでunzipを使用してください。それは.Zipファイルを処理するように設計されたプログラムです。 tarはまったく必要ありません。

2
Joe Sewell