Si le fichier que vous souhaitez mettre à jour est un fichier texte. Ensuite, vous pouvez utiliser vim
editor directement pour ouvrir l'archive contenant le fichier et l'ouvrir, tout comme ouvrir le dossier à l'aide de l'éditeur vim. Modifiez ensuite le fichier, enregistrez-le et quittez.
Cependant, si le fichier est un fichier binaire. Je n'ai aucune idée de la solution.
Eh bien, j'ai trouvé la réponse.
Vous ne pouvez pas utiliser tar -u
avec une archive zippée. La solution que j'ai utilisée était donc la suivante. Notez que j'ai déplacé le z.jar
fichier dans un dossier que j'ai créé dans le répertoire courant appelé application/x/y
à cet effet.
gzip -d application.tar.gz
tar -uf application.tar application/x/y/z.jar
gzip application.tar
Quand j'ai fait un tar -tf application.tar
(après la mise à jour, avant le gzip) il s'est affiché correctement.
dans mon cas, j'ai dû supprimer le fichier puis ajouter le nouveau fichier en procédant comme suit :
mon fichier tar
file.tar
└── foo.json
└── bar.json
└── dir
└── zoo.json
et je voulais seulement modifier/mettre à jour foo.json
fichier sans extraire et recréer l'intégralité du fichier tar file.tar
, Voici les commandes :
tar -x -f file.tar foo.json # extract only foo.json file to my current location
# now modify the file foo.json as you want ...
tar --delete -f file.tar foo.json # delete the foo.json file from the file.tar
tar -uf file.tar foo.json # add the specific file foo.json to file.tar
fichier compressé :
s'il s'agit d'un fichier compressé, comme file.tar.gz
, vous devrez extraire le fichier tar du fichier compressé (dans cet exemple gzip) en utilisant gunzip file.tar.gz
qui créera pour vous le fichier tar file.tar
. alors vous pourrez faire ci-dessus étapes.
à la fin vous devez compresser à nouveau le fichier tar en utilisant gzip file.tar
qui créera pour vous un fichier compressé avec le nom file.tar.gz
sous-répertoires :
afin de gérer les sous-répertoires, vous devrez également conserver la même structure dans le système de fichiers :
tar -x -f file.tar dir/zoo.json
# now modify the file dir/zoo.json as you want ...
tar --delete -f file.tar dir/zoo.json
tar -uf file.tar dir/zoo.json
afficher la structure du fichier :
en utilisant le less
commande, vous pouvez voir la structure du fichier :
less file.tar
drwxr-xr-x root/root 0 2020-10-18 11:43 foo.json
drwxr-xr-x root/root 0 2020-10-18 11:43 bar.json
drwxr-xr-x root/root 0 2020-10-18 11:43 dir/zoo.json