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.

Foi útil?

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 ..

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top