come escludere directory e file zippare una directory?

24

I, ho bisogno di comprimere una directory escludendo alcune sottodirectory e file; Ho usato questo:

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

senza alcun successo; node_modules è una cartella in quella principale mentre bower_components è all'interno dell'app cartella

    
posta arpho 05.11.2013 - 17:34

5 risposte

26

Semplicemente indovina cosa vuoi.

-x ".*"

escludi tutti i file che iniziano con un punto

fai come:

-x .\*

escludi tutti i file (con un punto nel nome del file)

fai come:

-x \*.\*

-

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

escludi questa directory e tutti i file in essa contenuti

fai come:

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

-

-x "*.zip"

escludi tutti i file zip

fai come:

-x \*.zip

Escludi node_modules due volte

    
risposta data D-E-N 05.11.2013 - 19:20
6

Qualcosa del genere dovrebbe fare il trucco:

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

Dove segue -x è un elenco di directory e tipi di file (estensione) da escludere.

    
risposta data MikeiLL 10.06.2015 - 18:50
1

Funziona perfettamente per me su Ubuntu 16.04:

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

Supponendo che la tua directory sia un repository git (ea giudicare dalla domanda, molto probabilmente lo è), puoi aggiungere directory che vuoi escludere nel file .gitignore e utilizzare il comando git archive per comprimere i contenuti del tuo directory:

git archive --format=zip HEAD -o zipfile.zip

Nel tuo esempio, il file .gitignore dovrebbe apparire come questo:

node_modules
app/bower_components
    
risposta data jkukul 16.06.2018 - 16:30
0

in ogni progetto salta node_moduli in questo modo:

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

Leggi altre domande sui tag