Estou tentando adicionar arquivos descompactados a uma pasta já compactada, digamos new folder.zip
. É possível usar zip -r new folder.zip
depois de adicionar alguns arquivos descompactados a eles? Esse comando compactará a pasta? Existe alguma alternativa para fazer isso?
32
Respostas:
Use o sinalizador de atualização:
-u
Exemplo:
Este comando irá compactar e adicionar
myFolder
(e seu conteúdo) ao arquivoexisting.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
Estrutura de origem atualizada
Uso
fonte
Eu acredito que você pode adicionar arquivos usando este comando:
zip -r zipfile.zip newfile.txt newfile1.txt
A
-r
opção do comando zip permite adicionar arquivos.fonte
-r
é uma opção recursiva.-r
pode ser usada se você adicionar diretórios ou quando não estiver adicionando diretórios. Bem, sempre que você não quiser apenas adicionar o diretório e nenhum conteúdo, praticamente o tempo todo Portanto, em resumo, o exemplo está correto, mas a explicação está errada.) (Melhor testá-lo, essa é apenas a minha interpretação do manual).O sinalizador -u funciona para arquivos
Saudações
fonte
Eu usei com sucesso o
zip
comando. com a opção grow (-g), para adicionar uma subpastafolder1/folder2
contendo os arquivosfileA.txt
efileB.txt
:-r
significa recurs dir.Pelo meu entendimento, -g deve aumentar os arquivos zip, não criando um novo arquivo zip (que pode ser útil em arquivos zip muito grandes). Em caso de problemas, você pode primeiro tentar criar subpastas em folder.zip com (por exemplo):
fonte
Se você tiver muitos arquivos no mesmo local que o seu arquivo zip e quiser copiar todos eles no arquivo morto, poderá:
Isso atualiza seu arquivo zip (a
-u
opção) recursivamente (-r
opção) com todos os arquivos encontrados, exceto o próprio arquivo zip (!
é a negação do arquivo zip )Em seguida, você pode simplesmente excluir todos os arquivos, exceto o arquivo zip, seguindo a mesma regra acima:
fonte