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
この問題を解決するにはどうすればよいですか?
tar
コマンドは、ZARファイルではなく、TARアーカイブを解凍するためのものです。 unzip
の代わりにtar
コマンドを使用する必要があります:
unzip foo.Zip
またはtar.gz
Zipファイルの代わりにMac側のアーカイブ
tar -cvzf foo.tar.gz ....
linux側で既存のtar
コマンドを使用して解凍できます。
このエラー:
gzip: stdin has more than one entry--rest ignored
tar
がgipアーカイブであるかのようにZipアーカイブを解凍しようとしていることを意味します。これは常に機能するとは限りません(「 Zipで作成されたファイルは、 'deflation'メソッドで圧縮された単一のメンバー " 詳細については)。
代わりにunzip foo.Zip
を使用してZipアーカイブを解凍する必要があります。
標準GNU tar
は.Zip
ファイルを直接処理しません。MacOSXが処理することに驚いています。
問題は、tar
がgzip
ファイルの処理方法を知っていることです。これはnot Info-Zip(.Zip
)形式ですファイル。 Info-Zipファイルは、アーカイブと圧縮の両方を処理するように設計されていますが、tar
は処理しません。 (ほとんどのtar
実装は、コマンドラインオプションに基づいて、適切なコンプレッサー/デコンプレッサーでtar
ファイルをフィルターします。)
代わりに、クラスターでunzip
を使用してください。それは.Zip
ファイルを処理するように設計されたプログラムです。 tar
はまったく必要ありません。