Agregar archivos descomprimidos a una carpeta comprimida

Agregar archivos descomprimidos a una carpeta comprimida

Estoy intentando agregar archivos descomprimidos a una carpeta existente ya comprimida, por ejemplo new folder.zip. ¿Es posible usarlo zip -r new folder.zipdespué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 -ubandera. 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 -ubandera. 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 -ropción del comando zip le permite agregar archivos.

Respuesta3

Utilicé con éxito el zipcomando. con elcrecerOpción (-g), para agregar una subcarpeta folder1/folder2que contenga los archivos fileA.txty fileB.txt:

zip -gr folder.zip folder1/folder2

-rmediorecursivodir.

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 -uopción) de forma recursiva ( -ropció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)

información relacionada