2012-12-15 11 views
0

J'ai un programme qui ne consomme que des fichiers non compressés. J'ai quelques fichiers .gz et mon but est d'alimenter la concaténation d'entre eux à ce programme. Si j'avais un fichier tar.gz, je pourrais monter l'archive tar.gz avec la commande archivemont.comment fusionner des fichiers gz dans un tar.gz sans décompression?

Je sais que je peux concaténer les fichiers gz:

cat a.gz b.gz > c.gz 

Mais il n'y a aucun moyen, que je sache, pour monter un fichier gz. Je n'ai pas assez d'espace disque pour décompresser tous les fichiers et la commande tar ne pas accepter stdin comme entrée, donc je ne peux pas le faire:

zcat *.gz | tar - | gzip > file.tar.gz 

Répondre

0

On ne sait pas ce que les opérations que vous devez effectuer sur le archive tar.gz. Mais d'après ce que je peux discerner, tar.gz n'est pas le format de cette application. L'ensemble du flux d'archives est compressé par gzip, vous ne pouvez donc pas retirer ou modifier un fichier sans avoir à tout recompiler après. Le flux tar.gz peut être spécialement préparé pour garder la compression de chaque fichier indépendant, mais alors vous pouvez aussi bien utiliser le format .zip, qui est mieux adapté pour l'accès aléatoire et la manipulation de fichiers individuels dans l'archive.

Pour répondre à l'un de vos commentaires, tar peut en fait accepter stdin comme entrée. Voir pipe tar extract into tar create pour quelques exemples, où GNU tar et BSD tar (avec une syntaxe différente) peuvent prendre un fichier tar à partir de stdin, supprimer des entrées et écrire un nouveau fichier tar sur stdout.

Questions connexes