Use o sinalizador de atualização: -u
Exemplo:
zip -ur existing.zip myFolder
Este comando comprimirá e adicionará myFolder
(e seu conteúdo) ao existing.zip
.
Uso avançado:
O sinalizador de atualização na verdade compara os arquivos recebidos com os existentes e adiciona novos arquivos ou atualiza os existentes.
Portanto, se você quiser adicionar / atualizar um subdiretório específico dentro do arquivo zip, basta atualizar a fonte conforme desejado e, em seguida, zipar novamente a fonte inteira com o sinalizador-u
. Apenas os arquivos alterados serão zipados.
Se você não tiver acesso aos arquivos de origem, poderá descompactar o arquivo zip, atualizar os arquivos desejados e, em seguida, zerar novamente com o sinalizador -u
. Novamente, somente os arquivos alterados serão zipados.
Exemplo:
Estrutura original de origem
ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│ ├── file3.txt
│ ├── Logs
│ │ ├── logs1.txt
│ │ ├── logs2.txt
│ │ ├── logs3.txt
Estrutura de origem atualizada
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%)