Tout d'abord, si vous n'avez pas installé zip, installez-le d'abord comme suit :
sudo apt-get install zip
Ensuite, pour simplement créer un fichier zip :
zip -r nom_fichier_compresse.zip nom_dossier
Si vous voulez exclure les fichiers cachés :
find /chemin_du_dossier -path '*/.*' -prune -o -type f -print | zip ~/nom_fichier_compresse.zip -@
Exclure des fichiers d'une archive zip (tiré de http://osxdaily.com/2013/04/30/how-to-exclude-files-from-a-zip-archive/)
Les bases de l'exclusion de fichiers lors de la création d'une archive zip sont centrées autour du drapeau -x
, qui est utilisé pour exclure des fichiers de l'archive qui correspondent à un nom ou à un motif spécifique. À son niveau le plus fondamental, cela ressemblera à ceci :
zip archive.zip fichiers -x "ExclureMoi"
Cela signifie que vous pourriez exclure un seul fichier, disons qu'il s'appelle "JeNesaispas.jpg"
zip archive.zip images/ -x "JeNesaispas.jpg"
Explorons maintenant quelques exemples spécifiques où cela est utile.
Exclure les fichiers .DS_Store des archives Zip
Cela empêchera les fichiers de métadonnées Mac invisibles habituellement .DS_Store
d'être inclus dans une archive zip, qui sont inclus par défaut :
zip -r nom_archive.zip dossier_archive -x "*.DS_Store"
Si le répertoire inclut toutefois des sous-répertoires, vous voudrez utiliser une autre variation de cette commande pour exclure aussi les fichiers ds_store des sous-répertoires :
zip -r archive.zip répertoire -x "*/\.DS_Store"
Remarque : toutes les consoles ne nécessitent pas les guillemets pour que cette commande fonctionne correctement, mais dans la console bash (par défaut pour OS X), vous devrez utiliser les guillemets pour exclure avec des jokers et des motifs.
Exclure des types de fichiers spécifiques d'une archive Zip
Avec des jokers, vous pouvez également exclure tous les fichiers d'un certain type en se concentrant sur l'extension. Par exemple, cette commande zippera un répertoire entier, à l'exception des fichiers .jpg
:
zip -r archive.zip répertoire -x "*.jpg"
Cela pourrait être modifié pour n'importe quelle extension de fichier spécifique ou motif correspondant dans un nom de fichier.
Exclure le répertoire .git ou .svn d'une archive zip
Zipper un répertoire, à l'exclusion de .git
et de ses contenus :
zip -r zipdir.zip répertoire_zip -x "*.git*"
Zipper un dossier, sans inclure le répertoire .svn
:
zip -r zippé.zip répertoire -x "*.svn*"
Exclure tous les fichiers cachés d'une archive zip
Comme des motifs et des jokers peuvent être utilisés, vous pourriez également exclure tout fichier ou dossier invisible qui est rendu tel en étant préfixé d'un point, que ce soit un répertoire comme .svn
ou un fichier individuel comme .bash_profile
ou .htaccess
.
zip -r nom_archive.zip dossier_zip -x "*.*"
Ou pour exclure tous les fichiers invisibles de tous les sous-répertoires :
zip -r archive.zip répertoire -x "*/\.*"