149 votes

Exclusion d'un répertoire lors de la création d'un fichier .tar.gz

J'ai un /public_html/ Dans ce dossier, il y a un fichier /tmp/ qui contient environ 70gb de fichiers dont je n'ai pas vraiment besoin.

J'essaie maintenant de créer un .tar.gz de /public_html/ à l'exclusion /tmp/

Voici la commande que j'ai exécutée :

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" 

Le tar est encore en cours de création, et en faisant un ls -sh Je vois que MyBackup.tar.gz a déjà environ 30 gigaoctets, et je sais pertinemment qu'il n'y a pas d'autre solution. /public_html/ sin /tmp/ ne contient pas plus de 1 Go de fichiers.

Qu'ai-je fait de mal ?

235voto

Victor Parmar Points 2473

Essayez de supprimer le dernier / à la fin du chemin d'accès au répertoire pour l'exclure.

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp"

70voto

Martin Algesten Points 5915

Essayez de déplacer le --exclude avant l'inclusion.

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/

28voto

oussaka Points 601

La commande correcte pour exclure un répertoire de la compression est :

tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/

Veillez à mettre --exclure avant les éléments source et destination .

et vous pouvez vérifier le contenu du fichier tar.gz sans le décompresser :

tar -tf backup.tar.gz

22voto

user Points 21

Oui, supprimez la fin de l'article / et (au moins dans ubuntu 11.04) tous les chemins donnés doivent être relatifs ou complets. Vous ne pouvez pas mélanger des chemins absolus et relatifs dans la même commande.

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "home/user/start-directory/logs"

n'exclura pas le répertoire des journaux mais

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "./start-directory/logs"

fonctionnera

7voto

LozanoMatheus Points 323

Vous pouvez également en exclure plusieurs en n'utilisant qu'une seule --exclude . Comme dans l'exemple suivant :

tar -pczf MyBackup.tar.gz --exclude={"/home/user/public_html/tmp","/home/user/public_html/data"} /home/user/public_html/

En --exclude= vous devez terminer le nom du répertoire sans / et doit se situer entre les deux MaSauvegarde.tar.gz y /home/user/public_html/

La syntaxe est la suivante :

tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X