Comprimi i file zip con una compressione maggiore


10

Ho un gran numero di file zip che sono stati compressi utilizzando il comando zip. Vorrei ricomprimerli con il flag -9 per migliorare il rapporto di compressione. Qualcuno sa se ciò può essere fatto senza decomprimere manualmente e quindi comprimere.

PS. Ho bisogno di tenerli come file zip poiché vengono offerti agli utenti di Windows (e come tali hanno spazi bianchi nei loro nomi)


la ricompressione è possibile solo decomprimendo il file e comprimendolo nuovamente. dipende dall'algoritmo. Puoi anche provare bzip2 o anche meglio xz.

Suggerimento: questo può essere fatto anche con file Excel XLSX o XLSM poiché sono in realtà file ZIP contenenti XML e altre cose.
Cristian Ciupitu,

Risposte:


10

Non è possibile migliorare il rapporto di compressione senza decomprimere i dati. Non è necessario estrarre tutti i file zip prima di comprimerli, ma consiglierei di decomprimere un intero file zip prima di ricomprimerlo.

È possibile ricomprimere i file in un file zip uno alla volta e aggiungerli nuovamente prima di passare al file successivo contenuto nel file zip. Ciò richiede N riscritture del file zip per un file zip contenente N file. È molto più efficiente estrarre i file N e generare il nuovo file zip in una volta sola, comprimendo tutti i file con -9.


1
Il mio obiettivo non è quello di evitare la decompressione, piuttosto di mantenere la struttura dell'archivio uguale. e non modificare i metadati dei file.
Smartelf,

1
@Smartelf Non penso che tu possa evitare la decompressione. I tuoi altri requisiti sono possibili, non vi è alcun motivo per cui i dati dovrebbero cambiare.
terdon

2
@Smartelf come ho già indicato, ** devi ricomprimere **. L'assegnazione dello stesso file metadata non dovrebbe essere un problema se lo fai, ad esempio con un programma Python e il suo modulo zip. Con unzip/ zipmantenere i metadati uguali è probabilmente più difficile.
Anthon,

6

C'è un'utilità chiamata AdvanceCOMP che fa esattamente quello che stai cercando. Ricomprime i file ZIP e GZ (e alcuni altri) senza estrazione intermedia su disco. (Credo che il meccanismo utilizzato sia quello di decomprimere i dati e ricomprimerli, ma ciò non richiede la scrittura di file su disco o la rigenerazione dei metadati.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.