Linux : Compresser un répertoire et exclure des sous-répertoires spécifiques
Comment compresser ou plus exactement zipper un répertoire en excluant certains sous-répertoires ?
Pré-requis :
- Avoir un serveur sous linux (CentOS, Debian, …)
- Avoir un accès ssh en root
Pour compresser un répertoire :
zip -r mon_repertoire.zip mon_repertoire_a_zipper
Pour compresser un répertoire et exclure un répertoire spécifique :
zip -r mon_repertoire.zip mon_repertoire_a_zipper -x mon_repertoire_a_zipper/dossier_a_exclure/**\*
Pour exclure plusieurs répertoires en même temps
zip -r mon_repertoire.zip mon_repertoire_a_zipper -x mon_repertoire_a_zipper/dossier_a_exclure1/**\*
mon_repertoire_a_zipper/dossier_a_exclure2/**\* mon_repertoire_a_zipper/dossier_a_exclure3/**\*
Combiner un script PHP avec une ligne de commande : (Pas optimisé mais ça fonctionne)
$exclure = "mon_repertoire/mon_sous_repertoire1/**\* ";
$exclure .= "mon_repertoire/mon_sous_repertoire2/**\* ";
$exclure .= "mon_repertoire/mon_sous_repertoire3/**\* ";
$exclure .= "mon_repertoire/mon_sous_repertoire4/**\* ";
system(sprintf('zip -r mon_repertoire.zip mon_repertoire/ -x '.$exclure));
Deposer un commentaire