Vim supporta la modifica trasparente dei file all'interno dei file zip. Basta eseguire:
vim file.zip
e ti verrà mostrato un elenco di file all'interno dell'archivio zip. Scegli quello che vuoi modificare, cambia quello che vuoi ed esci con :x
Se vim
risponde con:
Impossibile apportare modifiche, 'modificabile' è disattivato
.. basta eseguire :set modifiable
o :set ma
(fonte:https://stackoverflow.com/questions/5745506/vim-modifiable-is-off)
Conosci il nome del file nell'archivio prima di decomprimerlo? Potresti creare una funzione per decomprimere in /tmp
, modifica e aggiorna lo zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Come si dice, l'utilizzo è:
zipedit myarchive.zip myfile.txt
Questo decomprime il file indicato dall'archivio, lo salva in /tmp
, lo modifica in vi
quindi lo aggiunge nuovamente all'archivio, mentre "elimina" il percorso. Aggiungi al tuo .bash_profile, assumendo bash
...
MODIFICA: Di seguito è riportata una versione che funziona con le sottocartelle all'interno dell'archivio... Nota, non utilizzare una barra prima del nome della cartella (ad esempio utilizzare myfolder/file.txt
non /myfolder/file.txt
). Se modifichi un file che non esisteva già nell'archivio, lo creerà per te. Inoltre, non sono sicuro che funzionerà con il percorso assoluto del file zip. Il miglior bastone con il parente.
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"
}
Grazie per la domanda. Probabilmente finirò per usare anche questo!
Un'altra modifica:non testata, ma ho letto quel vim
e emacs
entrambi modificheranno direttamente i file jar?
Risposta breve:NO.
Se è un involucro, lo sei chiamando questi comandi. Ad ogni modo, il meglio che mi viene in mente è aprire il file usando file-roller
, se sei in un ambiente X, potrebbe funzionare con un semplice doppio clic, a seconda della tua configurazione. Puoi quindi fare doppio clic sul file compresso per aprirlo e modificarlo:
$ file-roller b3.zip
Quando salvi il file modificato, dovresti visualizzare questa finestra di dialogo:
Potresti creare uno script anche per questo, ma diventa complicato se hai archivi compressi che contengono più file. Fammi sapere se è ciò di cui hai bisogno e potrei essere in grado di cucinare qualcosa.