Eu gostaria de zipar o diretório, mas excluir alguns subdiretórios. Digamos que eu tenha essa estrutura:
directory
subdirectory 1
subdirectory 2
project 1
html
directory 1
vendor
node_modules
... (other directories)
project 2
html
directory 2
vendor
node_modules
... (other directories)
Eu gostaria de zipar todo o diretório principal, mas gostaria de excluir caminhos como este:
subdirectory2/*/html/vendor/**
subdirectory2/*/html/node_modules/**
onde:
-
*
- é um diretório de nível
-
**
- é o diretório com todos os arquivos e subdiretórios
O problema é que os project 1
e project 2
são bastante dinâmicos - há vários deles. Observe também que os diretórios vendor
(e também em teoria node_modules
) podem ser colocados em outros locais, por exemplo, em project 1/html/public/vendor
, portanto, não gostaria de excluir apenas o subdiretório vendor
, mas apenas o subdiretório vendor
específico que está localizado exatamente em diretórios de projetos html.
É possível fazer uma coisa tão complexa usando apenas o comando zip
ou talvez algum script bash deva ser escrito para isso?
Estou usando o MacOS se isso faz alguma diferença.
O que consegui até agora é:
cd directory && zip test-zip.zip * -r -T -x */*/html/vendor/** */*/html/node_modules/**
Parece que quase funciona, mas cria diretórios de módulos de fornecedores e de nós vazios (mas não inclui seu conteúdo)