Come posso aggiornare la mia versione di 'unzip' alla versione 6.00 o successiva?

7

È un problema comune che, quando si decomprime (leggi: 'apri con doppio clic'), alcuni file .zip producono un file .cpgz di dimensioni simili. Ma ti aspettavi invece un file o una cartella decompressi.

Il programma di decompressione predefinito in OS X è '/ System / Library / CoreServices / Archive Utility.app'

Quando provi a decomprimerlo nel Terminale ( /usr/bin/unzip ) vedi quanto segue:

$ unzip SE.zip

Archive:  SE.zip
warning [SE.zip]:  zipfile claims to be last disk of a multi-part archive;
  attempting to process anyway, assuming all parts have been concatenated
  together in order.  Expect "errors" and warnings...true multi-part support
  doesn't exist yet (coming soon).
error [SE.zip]:  missing 8256083459 bytes in zipfile
  (attempting to process anyway)
error [SE.zip]:  attempt to seek before beginning of zipfile
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

Ho eseguito Mavericks 10.9.5 e un unzip -v ci impara sulla versione 5.52:

$ unzip -v
UnZip 5.52 of 28 February 2005, by Info-ZIP.  Maintained by C. Spieler. Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
...

La cosa divertente è che lo stesso file zip "corrotto" estrae bene sul mio sistema CentOS. Non ci sono errori e il file sembra a posto. Il mio sistema CentOS esegue la decompressione della versione 6.00:

$ unzip -v
UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
...

La mia domanda: come posso aggiornare la mia versione di unzip alla versione 6.00 o successiva?

E domanda affiliata: la mia nuova versione di unzip di OS X avrà anche effetto sul decomprimere di default 'Archive Utility.app'?

ps. Preferisco l'uso di un gestore di pacchetti come brew sopra la compilazione dal sorgente. brew install unzip risulta in: Error: No available formula for unzip

    
posta CousinCocaine 10.10.2014 - 14:35
fonte

2 risposte

7

Uso di Homebrew (come richiesto):

$ brew tap homebrew/dupes
$ brew install unzip

Questo installerà unzip in (considerando i valori di default) /usr/local/Cellar/unzip/6.0/bin/unzip

Puoi quindi renderlo alias come unzip6 da qualche parte nel tuo percorso.

Inoltre, potresti provare "The Unarchiver" dall'app store. Molto più utile IMO quindi Utility di archiviazione di Apple.

Aggiorna

dupes è stato deprecato in Homebrew, quindi brew tap homebrew/dupes non è più necessario. Tutto ciò di cui hai bisogno ora (supponendo che Homebrew sia installato) è:

brew install unzip

Quindi puoi aggiungere un link a /usr/local/bin con:

ln -s /usr/local/opt/unzip/bin/unzip /usr/local/bin/unzip6

Ora il sistema unzip dovrebbe funzionare con unzip e la Versione 6 funzionerà con unzip6

    
risposta data 10.10.2014 - 15:25
fonte
3

Potresti scoprire che p7zip fa ciò che vuoi. Usa brew install p7zip per installare, quindi esegui 7z -h per ottenere aiuto.

Sto usando 7z t su un file zip da 20 GB mentre scrivo questo, per verificarne l'integrità. Sia Unzip 5.52 che Unzip 6.0 si sono soffocati su di esso.

    
risposta data 05.12.2015 - 10:52
fonte

Leggi altre domande sui tag