Connaissez-vous le nom du fichier dans l’archive avant de le décompresser? Vous pouvez créer une fonction pour décompresser /tmp
, éditer et actualiser 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 vi
puis le rajoute à l’archive tout en "jonglant" le chemin. Ajouter à votre .bash_profile, en supposant bash
...
EDIT: Vous trouverez ci-dessous 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 n’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. Aussi pas sûr si cela fonctionnera avec le chemin absolu du fichier zip. Meilleur bâton avec 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 vais probablement finir par utiliser celui-ci aussi!
Une autre édition: non testée, mais j'ai lu cela vim
et emacs
les deux fichiers jar seront-ils édités directement?