Vim prend en charge l'édition transparente de fichiers dans des fichiers zip. Exécutez simplement :
vim file.zip
et vous verrez une liste de fichiers à l'intérieur de l'archive zip. Choisissez celui que vous voulez modifier, changez ce que vous voulez, et quittez avec :x
Si vim
répond par :
Impossible d'apporter des modifications, "modifiable" est désactivé
.. exécutez simplement :set modifiable
ou :set ma
(source :https://stackoverflow.com/questions/5745506/vim-modifiable-is-off)
Connaissez-vous le nom du fichier dans l'archive avant de le décompresser ? Vous pouvez créer une fonction pour décompresser en /tmp
, modifiez et actualisez le zip :
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Comme il est dit, l'utilisation est :
zipedit myarchive.zip myfile.txt
Cela décompresse le fichier nommé de l'archive, l'enregistre dans /tmp
, l'édite en vi
puis le rajoute à l'archive, tout en "éliminant" le chemin. Ajouter à votre .bash_profile, en supposant bash
...
MODIF : Ci-dessous se trouve une version qui fonctionne avec des sous-dossiers à l'intérieur de l'archive... Remarque, n'utilisez pas de barre oblique avant le nom du dossier (c'est-à-dire utilisez myfolder/file.txt
pas /myfolder/file.txt
). Si vous éditez un fichier qui n'existait pas déjà dans l'archive, il le créera pour vous. Je ne sais pas non plus si cela fonctionnera avec le chemin absolu du fichier zip. Mieux vaut s'en tenir à un parent.
zipedit(){
echo "Usage: zipedit archive.zip folder/file.txt"
curdir=$(pwd)
unzip "$1" "$2" -d /tmp
cd /tmp
vi "$2" && zip --update "$curdir/$1" "$2"
# remove this line to just keep overwriting files in /tmp
rm -f "$2" # or remove -f if you want to confirm
cd "$curdir"
}
Merci pour la question. Je finirai probablement par utiliser celui-ci aussi !
Autre modification :non testée, mais j'ai lu que vim
et emacs
les deux modifieront-ils directement les fichiers jar ?
Réponse courte :NON.
Si c'est un wrapper, vous êtes appeler ces commandes. Quoi qu'il en soit, le mieux que je puisse penser est d'ouvrir le fichier en utilisant file-roller
, si vous êtes dans un environnement X, cela peut fonctionner avec un simple double-clic, selon votre configuration. Vous pouvez ensuite double-cliquer sur le fichier compressé pour l'ouvrir puis vous pouvez le modifier :
$ file-roller b3.zip
Lorsque vous enregistrez votre fichier modifié, vous devriez obtenir cette boîte de dialogue :
Vous pouvez également créer un script pour cela, mais cela se complique si vous avez des archives compressées contenant plusieurs fichiers. Faites-moi savoir si c'est ce dont vous avez besoin et je pourrai peut-être préparer quelque chose.