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 viaggiunge 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.txtnon 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 vimed emacsentrambi modificherò direttamente i file jar?