J'ai un grand nombre de fichiers zip qui ont été compressés à l'aide de la commande zip. Je voudrais les recompresser avec le drapeau -9 pour améliorer le taux de compression. Est-ce que quelqu'un sait si cela peut être fait sans décompresser manuellement, puis compresser.
PS. Je dois les conserver sous forme de fichiers zip car ils sont servis aux utilisateurs de Windows (et en tant que tels, ont des espaces blancs dans leurs noms)
linux
zip
compression
Smartelf
la source
la source
Réponses:
Vous ne pouvez pas améliorer le taux de compression sans décompresser les données. Vous n'avez pas besoin d'extraire tous les fichiers zip avant de les compresser, mais je recommanderais de décompresser un fichier zip entier avant de recompresser.
Il est possible de recompresser les fichiers dans un fichier zip un à la fois et de les rajouter avant de passer au fichier suivant contenu dans le fichier zip. Cela nécessite N réécritures du fichier zip pour un fichier zip contenant N fichiers. Il est beaucoup plus efficace d'extraire les fichiers N et de générer le nouveau fichier zip en une seule fois, en compressant tous les fichiers avec
-9
.la source
unzip
/zip
conserver les métadonnées, la même chose est probablement plus difficile.Il existe un utilitaire appelé AdvanceCOMP qui fait exactement ce que vous recherchez. Il recompresse les fichiers ZIP et GZ (et quelques autres) sans extraction intermédiaire sur le disque. (Je crois que le mécanisme utilisé est de décompresser les données et de les recompresser, mais cela ne nécessite pas d'écrire des fichiers sur le disque ou de régénérer des métadonnées.)
la source