2015-03-09 7 views
12

Ich gezippt ein Verzeichnis auf meinem Mac OSX mit der zip Befehlszeile und -r Option. I scp die .zip zu einem Cluster unter Linux.Fehler, wenn `tar` ein `.zip` auf Linux

Wenn ich versuche, die .zip mit

tar -vxzf foo.zip

auf meinem Rechner zu dekomprimieren es funktioniert. Aber derselbe Befehl funktioniert nicht auf dem Cluster. Ich erhalte den Fehler

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

Wie kann ich dieses Problem lösen?

Antwort

25

Der tar Befehl TAR-Archive zum Entpacken, nicht zip-Dateien. Sie sollten entweder die unzip Befehl statt tar:

unzip foo.zip 

Oder machen Sie ein tar.gz Archiv auf der Seite Mac statt eine Zip-Datei

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

, die Sie mit Ihrem vorhandenen tar Befehl auf der Linux-Seite entpacken können.

+0

Klingt offensichtlich jetzt +1. Ich wusste nicht wirklich, was das TAR-Archiv ist. Übrigens, warum hat 'tar' dann' .zip' auf meinem Mac bearbeitet? Danke vielmals. –

+4

@ Remi.b tar auf dem Mac ist eine Version von BSD tar und nicht das GNU tar, das auf Linux-Distributionen verwendet wird. [Die Apple Man-Seite] (https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/tar.1.html) schlägt vor, dass Mac tar mit Zip-Dateien umgehen kann, aber GNU tar kann ' t (außer in dem in der anderen Antwort beschriebenen begrenzten Fall). –

2

Standard GNU tar behandelt .zip Dateien nicht direkt. Ich bin überrascht, dass MacOSX damit klarkommt.

Das Problem ist, dass tar weiß, wie gzip Dateien zu handhaben, die nicht Info-Zip (.zip)-Format-Dateien sind. Info-Zip-Dateien sind für Archivierung und Komprimierung ausgelegt, während tar dies nicht tut. (Die meisten tar Implementierungen werden nun filtern die tar Datei mit dem richtigen Kompressor/Dekompressor auf der Grundlage der Befehlszeilenoptionen.)

Verwenden unzip auf dem Cluster statt. Das ist das Programm, das entwickelt wurde, um .zip Dateien zu behandeln. Sie sollten tar überhaupt nicht benötigen.

Verwandte Themen