Avec les fichiers gzip, vous pouvez simplement concaténer les fichiers ensemble, comme ceci:
cat file1.gz file2.gz file3.gz > allfiles.gz
Selon le RFC gzip ,
Un fichier gzip se compose d'une série de "membres" (ensembles de données compressés). [...] Les membres apparaissent simplement les uns après les autres dans le fichier, sans informations supplémentaires avant, entre ou après eux.
Notez que ce n'est pas exactement la même chose que la construction d'un seul fichier gzip des données concaténées; entre autres, tous les noms de fichiers originaux sont conservés. Cependant, gunzip semble le traiter comme équivalent à une concaténation.
Étant donné que les outils existants ignorent généralement les en-têtes de nom de fichier pour les membres supplémentaires, il n'est pas facilement possible d'extraire des fichiers individuels du résultat. Si vous voulez que cela soit possible, créez un fichier ZIP à la place. ZIP et GZIP utilisent tous les deux l'algorithme DEFLATE pour la compression réelle (ZIP prend en charge d'autres algorithmes de compression ainsi qu'une option - la méthode 8 est celle qui correspond à la compression de GZIP); la différence réside dans le format des métadonnées. Étant donné que les métadonnées ne sont pas compressées, il est assez simple de supprimer les en-têtes gzip et de coller les en-têtes de fichiers ZIP et un enregistrement de répertoire central à la place. Reportez-vous à la spécification du format gzip et à la spécification du format ZIP .
cat file1.gz file2.gz file3.gz > allfiles.gz
. C'est vraiment aussi simple que ça :)cat
réponse mais avec quelques métadonnées supplémentaires. Vous pouvez ensuite les décompresser pour obtenir les noms de fichiers d'origine, puis décompresser tout ou juste quelques-uns selon vos besoins.zcat
décompresse son entrée, ce qui vous donnera une sortie décompressée avec une.gz
extension.Voici ce que
man 1 gzip
dit votre exigence.Inutile de dire,
file1
peut être remplacé parfile1.gz
.Vous devez remarquer ceci:
Donc, pour obtenir tous les membres individuellement, vous devrez utiliser quelque chose de supplémentaire ou écrire, si vous le souhaitez.
Cependant, ceci est également traité dans la page de manuel.
la source
Utilisez simplement un chat. C'est très rapide (0,2 seconde pour 500 Mo pour moi)
Vous pouvez ensuite lire la sortie avec zcat pour vous assurer qu'elle est jolie:
J'ai essayé l'autre réponse de «gz -c» mais je me suis retrouvé avec des déchets en utilisant des fichiers déjà gzippés en entrée (je suppose que cela les a compressés deux fois).
PV:
Mieux encore, si vous l'avez, 'pv' au lieu de chat:
Cela vous donne une barre de progression car cela fonctionne, mais fait la même chose que cat.
la source
Vous pouvez créer un fichier tar de ces fichiers, puis gzip le fichier tar pour créer le nouveau fichier gzip
la source