web-dev-qa-db-fra.com

Répertoire d'exclusion lors de la création d'un fichier .tar.gz

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

Maintenant, j'essaie de créer un .tar.gz de /public_html/ sans /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/" 

La tar est toujours en cours de création et en effectuant un ls -sh, je peux voir que MyBackup.tar.gz a déjà environ 30 Go, et je sais avec certitude que /public_html/ sans /tmp/ ne contient pas plus de 1 Go de fichiers.

Qu'ai-je fait de mal?

97
suresh

Essayez de supprimer le dernier/à la fin du chemin du répertoire à exclure

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

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

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

Oui, supprimez le / final 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"

ne sera pas exclure le répertoire des journaux, mais

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

marchera

15
user

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

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

Assurez-vous de mettre --exclude avant les éléments source et destination

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

tar -tf backup.tar.gz
7
oussaka

Essaye ça

tar -pczvf advancedarts.tar.gz /home/user/public_html/ --exclude /home/user/public_html/tmp
2
Yogesh

Cela a fonctionné pour moi:

tar -zcvf target.tar.gz target/ --exclude="target/backups" --exclude="target/cache"
1
Black

La réponse acceptée ne fonctionnait pas pour moi, exécuter unxutils sur Windows 10. Au lieu de cela, je devais mettre les fichiers/répertoires à archiver comme paramètre last , comme ceci:

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

Ensuite cela a fonctionné.

1
user2081279

Vous pouvez également exclure plusieurs utilisateurs à l'aide d'un seul --exclude. Comme cet exemple:

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

Dans --exclude=, vous devez terminer le nom du répertoire sans / et doit figurer entre MyBackup.tar.gz et/home/user/public_html/

La syntaxe est la suivante:

tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>
0
Matheus Lozano