A veces necesito hacer cambios en un archivo .zip o .jar, por lo que generalmente muevo el archivo a /tmp
, extraigo todos los archivos unzip
, edito algunos archivos y luego vuelvo a comprimirlos. Esto funciona, pero puede ser tedioso. ¿Hay alguna utilidad o script de shell que pueda usar para editar un archivo dentro de un archivo zip sin llamar explícitamente unzip
y zip
(incluso si es solo un contenedor alrededor de estos comandos)?
47
Respuestas:
¿Conoces el nombre del archivo en el archivo antes de descomprimirlo? Puede hacer una función para descomprimir
/tmp
, editar y actualizar el zip:Como dice, el uso es:
Esto desempaqueta el archivo con nombre del archivo, lo guarda
/tmp
, lo edita yvi
luego lo vuelve a agregar al archivo, mientras "desecha" la ruta. Agregue a su .bash_profile, suponiendobash
...EDITAR: A continuación se muestra una versión que funciona con subcarpetas dentro del archivo ... Nota, no use una barra inclinada antes del nombre de la carpeta (es decir,
myfolder/file.txt
no use/myfolder/file.txt
). Si edita un archivo que aún no existía en el archivo, lo creará para usted. Tampoco estoy seguro de si funcionará con la ruta absoluta al archivo zip. Mejor palo con pariente.Gracias por la pregunta ¡Probablemente termine usando este también!
Otra edición: Sin probar, pero lo leí
vim
yemacs
¿editarán ambos archivos jar directamente?fuente
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:.. simplemente ejecute
:set modifiable
o:set ma
(fuente: https://stackoverflow.com/questions/5745506/vim-modifiable-is-off )fuente
Respuesta corta: NO.
Si es un contenedor, está llamando a estos comandos. De todos modos, lo mejor que puedo pensar es abrir el archivo usando
file-roller
, si está en un entorno X, que 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 puede editarlo: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 múltiples archivos. Avíseme si eso es lo que necesita y podría cocinar algo.
fuente
Respuesta pedante corta; no. Si piensa en la compresión, está utilizando la redundancia para acortar los archivos internos, por lo que cualquier edición cambia todo el archivo dentro del archivo, posiblemente el archivo.
Si eres menos teórico, más práctico, más "No quiero tener que descomprimir / comprimir manualmente", hay herramientas que puedes usar. Ark en Linux es uno que he usado. También puede montar el archivo con fuse-zip , aunque probablemente sea más trabajo que un archivo temporal.
fuente
fuse-zip
.De acuerdo con la página de manual de
zip
(versión en línea para una referencia fácil: http://linux.die.net/man/1/zip ), elzip
comando tiene una-u
bandera que describe como:fuente
El administrador de archivos Directory Opus 12 le permitirá navegar por el Zip, luego arrastrar y soltar el archivo editado desde otra carpeta y sobrescribir el archivo que desea editar, y lo hará todo sobre la marcha. Muy fácil
fuente
Escribí un plugin de Vim que extiende stock zip.vim para explorar y editar archivos zip anidados.
https://github.com/lbrayner/vim-rzip
fuente
Puede usar el editor de texto estándar de KDE, por ejemplo:
fuente