Estoy intentando agregar archivos descomprimidos a una carpeta existente ya comprimida, por ejemplo new folder.zip
. ¿Es posible usarlo zip -r new folder.zip
después de agregarles algunos archivos descomprimidos? ¿Este comando comprimirá la carpeta? ¿Existe alguna alternativa para hacer esto?
Respuesta1
Utilice la bandera de actualización:-u
Ejemplo:
zip -ur existing.zip myFolder
Este comando comprimirá y agregará myFolder
(y su contenido) al archivo existing.zip
.
Uso avanzado:
El indicador de actualización en realidad compara los archivos entrantes con los existentes y agregará archivos nuevos o actualizará los existentes.
Por lo tanto, si desea agregar/actualizar un subdirectorio específico dentro del archivo zip, simplemente actualice la fuente como desee y luego vuelva a comprimir la fuente completa con la -u
bandera. Sólo se comprimirán los archivos modificados.
Si no tiene acceso a los archivos fuente, puede descomprimir el archivo zip, luego actualizar los archivos deseados y luego volver a comprimirlos con la -u
bandera. Nuevamente, solo se comprimirán los archivos modificados.
Ejemplo:
Estructura fuente original
ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│ ├── file3.txt
│ ├── Logs
│ │ ├── logs1.txt
│ │ ├── logs2.txt
│ │ ├── logs3.txt
Estructura fuente actualizada
ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│ ├── file3.txt
│ ├── Logs
│ │ ├── logs1.txt
│ │ ├── logs2.txt
│ │ ├── logs3.txt
│ │ ├── logs4.txt <-- NEW FILE
Uso
$ zip -ur existing.zip ParentDir
> updating: ParentDir/ChildDir/Logs (stored 0%)
> adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)
Respuesta2
Creo que puedes agregar archivos usando este comando:
zip -r zipfile.zip newfile.txt newfile1.txt
La -r
opción del comando zip le permite agregar archivos.
Respuesta3
Utilicé con éxito el zip
comando. con elcrecerOpción (-g), para agregar una subcarpeta folder1/folder2
que contenga los archivos fileA.txt
y fileB.txt
:
zip -gr folder.zip folder1/folder2
-r
mediorecursivodir.
Según tengo entendido, -g debería hacer crecer los archivos zip, no crear un nuevo archivo zip (que puede ser útil con archivos zip muy grandes). En caso de problemas, puede intentar primero crear subcarpetas en carpeta.zip con (por ejemplo):
zip -g folder.zip folder1
zip -g folder.zip folder2
Respuesta4
Si tiene muchos archivos en el mismo lugar con su archivo zip y desea copiarlos todos en el archivo, puede hacer:
zip -ur zipfile.zip !(zipfile.zip)
Esto actualiza su archivo zip (la -u
opción) de forma recursiva ( -r
opción) con todos los archivos encontrados excepto el archivo zip en sí ( !
es la negación del archivo zip)
Luego, puedes simplemente eliminar todos los archivos excepto el archivo zip siguiendo la misma regla anterior:
rm !(zipfile.zip)