web-dev-qa-db-fra.com

comment exclure des répertoires et des fichiers en zippant un répertoire?

J'ai besoin de compresser un répertoire en excluant certains sous-répertoires et fichiers; J'ai utilisé ceci:

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

sans aucun succès; node_modules est un dossier dans le principal alors que bower_components est dans l'application des dossiers

30
arpho

Je devine simplement ce que vous voulez.

-x ".*"

exclure tous les fichiers commençant par un point

le faire comme:

-x .\*

exclure tous les fichiers (avec un point dans le nom du fichier)

le faire comme:

-x \*.\*

-

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

exclure ce répertoire et tous les fichiers qu'il contient

le faire comme:

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

-

-x "*.Zip"

exclure tous les fichiers Zip

le faire comme:

-x \*.Zip

Vous excluez node_modules deux fois

35
D-E-N

Quelque chose comme ça devrait faire l'affaire:

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

-x suit est une liste de répertoires et de types de fichiers (extension) à exclure.

6
MikeiLL

En supposant que votre répertoire soit un référentiel git (et à en juger par la question, il est fort probable), vous pouvez ajouter les répertoires que vous souhaitez exclure du fichier .gitignore et utiliser la commande git archive pour compresser le contenu de votre répertoire:

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

Dans votre exemple, le fichier .gitignore devrait ressembler à ceci:

node_modules
app/bower_components
4
Jakub Kukul

Cela fonctionne parfaitement pour moi sur Ubuntu 16.04:

Sudo Zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.Zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"
1
Tarik

dans chaque projet, ignorez node_modules comme ceci:

for i in */; do Zip -r "${i%/}.Zip" "$i" -x "*/\node_modules/*" ; done
0
nils petersohn