Use o sinalizador de atualização: -u
Exemplo:
zip -ur existing.zip myFolder
Este comando irá compactar e adicionar myFolder
(e seu conteúdo) ao arquivo existing.zip
.
Uso avançado:
O sinalizador de atualização realmente compara os arquivos recebidos com os existentes e adiciona novos arquivos ou atualiza os existentes.
Portanto, se você deseja adicionar / atualizar um subdiretório específico dentro do arquivo zip, atualize a fonte conforme desejado e, em seguida, remova novamente a fonte inteira com o -u
sinalizador. Somente os arquivos alterados serão compactados.
Se você não tiver acesso aos arquivos de origem, poderá descompactar o arquivo zip, atualizar os arquivos desejados e depois compactar novamente com o -u
sinalizador. Novamente, apenas os arquivos alterados serão compactados.
Exemplo:
Estrutura original da fonte
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%)