2010-06-02 8 views
14

Étant donné un fichier d'archive compressé tel que application.tar.gz qui a un dossier application/x/y/z.jar entre autres, je voudrais être en mesure de prendre ma plus récente version de z.jar et mettre à jour/rafraîchir l'archive avec .Mise à jour d'un seul fichier dans un tar compressé

Existe-t-il un moyen de faire cela autre que quelque chose comme ce qui suit?

tar -xzf application.tar.gz 
cp ~/myupdatedfolder/z.jar application/x/y 
tar -czf application application.tar.gz 

Je comprends l'interrupteur -u dans le goudron peut être utile pour éviter d'avoir à détarrer la chose, mais je ne suis pas sûr comment l'utiliser exactement.

Répondre

19

Eh bien, j'ai trouvé la réponse.

Vous ne pouvez pas utiliser tar -u avec une archive compressée. Donc la solution que j'ai utilisée était la suivante. Notez que j'ai déplacé le fichier z.jar dans un dossier que j'ai créé dans le répertoire courant appelé application/x/y à cette fin.

gzip -d application.tar.gz 
tar -uf application.tar application/x/y/z.jar 
gzip application.tar 

Quand je l'ai fait une tar -tf application.tar (après la mise à jour, avant la gzip) il a montré correctement.

4

Si le fichier que vous souhaitez mettre à jour est un fichier texte. Ensuite, vous pouvez utiliser l'éditeur vim directement pour ouvrir l'archive qui contient le fichier et l'ouvrir, tout comme le dossier ouvert en utilisant l'éditeur vim. Ensuite, modifiez le fichier et enregistrez-le et quittez.

Toutefois, si le fichier est un fichier binaire. Je n'ai aucune idée de la solution.

Questions connexes