2015-03-09 12 views
12

ho zippato una directory sul mio Mac OSX con la riga di comando e zip-r opzione. I scp il .zip in un cluster operativo su Linux.errore quando `` tar` un .zip` su Linux

Se provo a decomprimere il .zip con

tar -vxzf foo.zip

sulla mia macchina funziona. Ma lo stesso comando non funziona sul cluster. Ho ricevuto l'errore

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

Come posso risolvere questo problema?

risposta

25

il comando tar è per il disimballaggio archivi TAR, non comprimere i file. si dovrebbe utilizzare il unzip di comando invece di tar:

unzip foo.zip 

o fare un archivio tar.gz sul lato Mac invece di un file zip

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

cui è possibile decomprimere con il vostro tar comando esistente sul lato Linux.

+0

Sembra ovvio ora +1. Non sapevo veramente cosa fossero gli archivi TAR. A proposito, perché 'tar' ha funzionato su' .zip' sul mio Mac allora? Molte grazie. –

+4

@ Remi.b tar su Mac è una versione di tar di BSD piuttosto che il tar di GNU utilizzato sulle distribuzioni Linux. [La pagina di Apple Man] (https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/tar.1.html) suggerisce che Mac tar può gestire i file zip, ma GNU tar puo ' t (tranne nel caso limitato descritto nell'altra risposta). –

2

GNU standard tar non gestisce direttamente i file .zip. Sono sorpreso che MacOSX lo gestisca.

Il problema è che tar sa come gestire gzip file, che sono file in formato non Info-Zip (.zip). I file Info-Zip sono progettati per gestire sia l'archiviazione che la compressione, mentre lo no. (La maggior parte delle implementazioni tar ora filtreranno il file tar con il corretto compressore/decompressore basato sulle opzioni della riga di comando.)

Uso unzip nel cluster, invece. Questo è il programma progettato per gestire i file .zip. Non dovresti assolutamente aver bisogno di tar.

Problemi correlati