Vim admite la edición transparente de archivos dentro de archivos zip. Solo ejecuta:
vim file.zip
y se le mostrará una lista de archivos dentro del archivo zip. Elija el que desea editar, cambie lo que desee y salga con :x
Si vim
responde con:
No se pueden hacer cambios, 'modificable' está desactivado
.. solo ejecuta :set modifiable
o :set ma
(fuente:https://stackoverflow.com/questions/5745506/vim-modifiable-is-off)
¿Sabe el nombre del archivo en el archivo antes de descomprimirlo? Podrías hacer una función para descomprimir a /tmp
, edite y actualice el zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Como dice, el uso es:
zipedit myarchive.zip myfile.txt
Esto desempaqueta el archivo nombrado del archivo, lo guarda en /tmp
, lo edita en vi
luego lo vuelve a agregar al archivo, mientras "desecha" la ruta. Agregue a su .bash_profile, asumiendo bash
...
EDITAR: A continuación se muestra una versión que funciona con subcarpetas dentro del archivo... Tenga en cuenta que no use una barra antes del nombre de la carpeta (es decir, use myfolder/file.txt
no /myfolder/file.txt
). Si edita un archivo que aún no existía en el archivo, lo creará por usted. Tampoco estoy seguro de si funcionará con la ruta absoluta al archivo zip. Mejor quédate con un pariente.
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"
}
Gracias por la pregunta. ¡Probablemente terminaré usando este también!
Otra edición:no probado, pero leí que vim
y emacs
¿ambos editarán los archivos jar directamente?
Respuesta corta:NO.
Si es un envoltorio, eres llamar a estos comandos. De todos modos, lo mejor que se me ocurre es abrir el archivo usando file-roller
, si está en un entorno X, eso podría funcionar con un simple doble clic, dependiendo de su configuración. Luego puede hacer doble clic en el archivo comprimido para abrirlo y luego editarlo:
$ file-roller b3.zip
Cuando guarde su archivo editado, debería obtener este cuadro de diálogo:
También podría crear un script para esto, pero eso se complica si tiene archivos comprimidos que contienen varios archivos. Avísame si eso es lo que necesitas y tal vez pueda cocinar algo.