como excluir diretórios e arquivos compactando um diretório?

22

Eu preciso zipar um diretório excluindo algum subdiretório e arquivo; Eu usei isso:

zip -r zipfile.zip . -x ".*" -x "app/bower_components" -x "node_modules" -x "*.zip" -x "node_modules"

sem sucesso algum; node_modules é uma pasta na principal, enquanto bower_components está dentro da pasta app

    
por arpho 05.11.2013 / 17:34

4 respostas

25

Eu simplesmente faço uma suposição sobre o que você quer.

-x ".*"

excluir todos os arquivos que começam com um ponto

faça como:

-x .\*

excluir todos os arquivos (com um ponto no nome do arquivo)

faça como:

-x \*.\*

-

-x "app/bower_components" -x "node_modules"

exclua este diretório e todos os arquivos nele

faça como:

-x app/bower_components/\* -x node_modules/\*

-

-x "*.zip"

excluir todos os arquivos zip

faça como:

-x \*.zip

Você exclui o node_modules duas vezes

    
por D-E-N 05.11.2013 / 19:20
6

Algo como isso deve fazer o truque:

zip -r zipped.zip dir1/ -x */\.* *.git* \.* *.zip *.csv *.json *.rb *.bak *.swp *.back *.merge *.txt *.sh dir1/node_modules/**\* dir1/bower_components/**\* dir1/dist/**.*

Onde seguir -x é uma lista de diretórios e tipos de arquivos (extensão) a serem excluídos.

    
por MikeiLL 10.06.2015 / 18:50
1

Isso funciona perfeito para mim no Ubuntu 16.04:

sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"
    
por Tarik 29.07.2017 / 12:58
0

em todo projeto pule node_modules assim:

for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done
    
por nils petersohn 26.01.2017 / 15:36

Tags