combiner plusieurs fichiers compressés gzip dans un fichier tar

J’ai un très gros fichier tar contenant de nombreux fichiers gzip. Je voudrais combiner tous les fichiers gzip en un seul fichier gzip et les placer dans un autre répertoire. Pour afficher le contenu du fichier tar que j’utilise:

tar -zxvf Big.tar 

qui donne:

 Big/FileA.gz Big/FileB.gz Big/FileC.gz Big/FileD.gz 

Pour combiner normalement plusieurs fichiers gzip, je me déplacerais dans ce répertoire et utiliserais:

 cat FileA.gz FileB.gz FileC.gz FileD.gz > BigFile.gz 

Cependant, le BigFile.gz restrait dans ce répertoire. Je ne suis pas sûr de savoir comment faire cela dans un fichier tar et comment avoir le fichier combiné écrit dans un autre répertoire.

Avec GNU tar, vous pouvez faire:

 tar -Oxf Big.tar --wildcards 'Big/*.gz' > /tmp/your_file.gz 

Avec OS X tar, vous devez répertorier les fichiers individuellement:

 tar -Oxf Big.tar Big/FileA.gz Big/FileB.gz > /tmp/your_file.gz 

La caractéristique saillante dans les deux est -O , qui écrit les fichiers dans stdout.

Voici un exemple de transcription sur un système GNU:

 $ pwd /home/me $ tar tf Big.tar Big/ Big/foo.txt.gz Big/bar.txt.gz $ tar -Oxf Big.tar --wildcards 'Big/*.gz' > /tmp/your_file.gz $ zcat /tmp/your_file.gz This is the contents of foo.txt This is the contents of bar.txt 

En utilisant tar et en supposant le dossier Big a FileA.gz, FileB.gz, etc .:

 tar -czv -f /path/to/final/BigFile.gz -C Big . 

La saisie des fichiers tgz est incorrecte (bien qu’elle n’échoue pas) au moment du pack. Il est fort probable que vous obtiendrez des sursockets lors du déballage du gros fichier (ne l’a pas essayé), mais je pense qu’il ne fera que déballer le premier fichier (sinon il échouera complètement).

Pour atteindre votre objective, décompressez tous les zips dans des dossiers distincts, puis mettez tous ces dossiers dans ce fichier BigFile.tgz.

PS: Le stockage de fichiers d’archive dans d’autres fichiers d’archive (tgz dans tgz dans notre cas) ne fera qu’accroître l’espace du BigFile tgz