Conosci il nome del file nell'archivio prima di decomprimerlo? È possibile creare una funzione per decomprimere /tmp
, modificare e aggiornare 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 nominato dall'archivio, lo salva /tmp
, lo modifica e lo vi
aggiunge nuovamente all'archivio, mentre "ripulisce" 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 (ovvero myfolder/file.txt
non utilizzare /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. Stick migliore con relativo.
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 testato, ma l'ho letto vim
ed emacs
entrambi modificherò direttamente i file jar?