3 votes

Comment mélanger des fichiers de type compressé et stocké dans un même fichier zip ?

Je cherche une commande shell (de préférence une Une seule phrase ) qui créera un fichier zip contenant à la fois du contenu compressé et du contenu stocké (en stocké Je veux dire non compressé comme indiqué dans la documentation officielle, lien 1).

El Spécification du format de fichier .ZIP donne la liberté de mélanger différents types de compression, y compris le simple stockage de fichiers :

4.1.8 Chaque fichier de données placé dans un fichier ZIP PEUT être compressé, stocké, crypté ou signé numériquement indépendamment de la façon dont les autres fichiers de données du même fichier ZIP sont compressés. fichiers de données du même fichier ZIP sont archivés.

Si cela était nécessaire, cette possibilité technique est confirmée par le type de média enregistré dans le registre de l'IANA sous le nom de application/zip :

A. En-tête du fichier local :

signature de l'en-tête du fichier local 4 octets (0x04034b50) méthode de compression 2 octets

Jusqu'à présent, j'ai essayé sans succès plusieurs paramètres de zip ( -f -u -U ,..)

Idéalement, la commande devrait compresser les fichiers texte, et stocker le contenu binaire, différencié par leur extension de fichier (par exemple : html, css, js seraient considérés comme du texte, et jpg, ico, jar comme du binaire).

6voto

cody Points 10354

Vous cherchez le -n drapeau ?

\-n suffixes
--suffixes suffixes

 Do not attempt to compress files named with the given suffixes. Such files are simply
 stored (0% compression) in the output zip file, so that zip doesn't waste its time trying
 to compress them. The suffixes are separated by either colons or semicolons. For example:

       zip -rn .Z:.zip:.tiff:.gif:.snd  foo foo

 will copy everything from foo into foo.zip, but will store any files that end in .Z,
 .zip, .tiff, .gif, or .snd without trying to compress them.

2voto

Aurel300 Points 1421

En complément de la réponse de @cody, vous pouvez aussi le faire sur une base par fichier (groupe) avec -g y -0 . Quelque chose comme :

zip archive.zip compressme.txt
zip -g archive.zip -0 dontcompressme.jpg
-#
(-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
       Regulate the speed of compression using the specified digit #, where -0
       indicates no compression (store all files), -1 indicates the fastest 
       compression speed (less compression) and -9 indicates the slowest
       compression speed (optimal compression, ignores the suffix list).
       The default compression level is -6.

-g
--grow
       Grow  (append  to) the specified zip archive, instead of creating a new one.
       If this operation fails, zip attempts to restore the archive to its original
       state. If the restoration fails, the archive might become corrupted.
       This option is ignored when there's no existing archive or when at least
       one archive member must be updated or deleted.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X