Como adicionar arquivos e diretórios em um arquivo zip sem a dir raiz?
-
06-07-2019 - |
Pergunta
O programa utilitário zip, quando invocado como zip -r out.zip base/*
sobre essa estrutura de diretório
.
./base
./base/b
./base/b/c
./base/d
cria o seguinte resultado
adding: base/b/ (stored 0%)
adding: base/b/c (stored 0%)
adding: base/d (stored 0%)
Gostaria de obter um arquivo que contém dados a partir da seguinte saída
adding: b/ (stored 0%)
adding: b/c (stored 0%)
adding: d (stored 0%)
Eu esperava que a opção -j para me ajudar, mas isso não acontece: ela achata completamente a estrutura de diretórios. No momento, a única solução que eu encontrei é cd na base e invocar zip a partir daqui, mas eu queria saber se há uma PowerSwitch I deixar de reconhecer como tal nos docs.
Solução
Eu entendo que você não quer cd
, mas ...
Se tudo mais falhar e você está esperando para manter a sua chamada para fechar para baixo para uma linha, você pode encadear as chamadas e usar um caminho relativo para zip de saída na raiz:
Para Windows:
cd base & zip -r ..\out.zip * & cd ..
Para Linux / Unix:
cd base ; zip -r ../out.zip * ; cd ..