Je dois parfois modifier un fichier .zip ou .jar. Je déplace donc généralement le fichier dans /tmp
, extrait tous les fichiers unzip
, édite quelques fichiers, puis re-zippe. Cela fonctionne, mais cela peut être fastidieux. Existe-t-il un utilitaire ou un script shell que je puisse utiliser pour modifier un fichier dans un fichier zip sans appeler explicitement unzip
et zip
(même s'il ne s'agit que d'un wrapper autour de ces commandes)?
47
Réponses:
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:Comme il est dit, l’utilisation est:
Cela décompresse le fichier nommé de l’archive, l’enregistre dans
/tmp
, l’éditevi
puis le rajoute à l’archive tout en "jonglant" le chemin. Ajouter à votre .bash_profile, en supposantbash
...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.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
etemacs
les deux fichiers jar seront-ils édités directement?la source
Vim prend en charge l’édition transparente de fichiers au sein de fichiers zip. Il suffit d'exécuter:
vim file.zip
et vous verrez une liste de fichiers dans l'archive zip. Choisissez celui que vous voulez éditer, changez ce que vous voulez et quittez avec: x
Si
vim
répond avec:.. il suffit de courir
:set modifiable
ou:set ma
(source: https://stackoverflow.com/questions/5745506/vim-modifiable-is-off )la source
Réponse courte: NON.
Si c'est un wrapper, vous êtes appelez ces commandes. Quoi qu'il en soit, le mieux que je puisse faire est d'ouvrir le fichier en utilisant
file-roller
, si vous êtes dans un environnement X, cela pourrait fonctionner avec un simple double-clic, en fonction de votre configuration. Vous pouvez ensuite double-cliquer sur le fichier compressé pour l'ouvrir puis vous pouvez l'éditer: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 devient compliqué si vous avez des archives compressées contenant plusieurs fichiers. Faites-moi savoir si c'est ce dont vous avez besoin et je pourrais peut-être cuisiner quelque chose.
la source
Courte réponse pédante; non. Si vous songez à la compression, vous utilisez la redondance pour raccourcir les fichiers, de sorte que toute modification modifie l’ensemble du fichier dans l’archive, éventuellement l’archive.
Si vous êtes moins théorique, plus pratique, plus "Je ne veux pas avoir à décompresser / zipper manuellement", il existe des outils que vous pouvez utiliser. ark sur Linux est celui que j'ai utilisé. Vous pouvez également monter l'archive avec fuse-zip , bien que ce soit probablement plus de travail qu'un fichier temporaire.
la source
fuse-zip
.Selon la page de manuel for
zip
(version en ligne pour référence facile: http://linux.die.net/man/1/zip ), lazip
commande a un-u
drapeau qu’elle décrit comme suit:la source
Le gestionnaire de fichiers Directory Opus 12 vous permettra de parcourir le fichier Zip, de glisser-déposer le fichier modifié dans un autre dossier et d’écraser le fichier que vous souhaitez modifier. Le tout à la volée. Très facile
la source
J'ai écrit un plugin Vim qui étend les fichiers zip.vim à la navigation et à l'édition de fichiers zip imbriqués.
https://github.com/lbrayner/vim-rzip
la source
Vous pouvez utiliser l'éditeur de texte KDE standard, par exemple:
la source