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)