2010-11-27 32 views
86

J'ai un dossier /public_html/, dans ce dossier il y a un dossier /tmp/ qui a comme 70gb de fichiers dont je n'ai pas vraiment besoin.Exclure le répertoire lors de la création d'un fichier .tar.gz

Maintenant, je suis en train de créer un .tar.gz de /public_html/ hors /tmp/

Ceci est la commande que je courais:

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

Le goudron est encore en cours de création, et en faisant un ls -sh je peux voir que MyBackup.tar.gz a déjà environ 30gb, et je sais avec certitude que /public_html/ sans /tmp/ n'a pas plus de 1 Go de fichiers.

Qu'est-ce que j'ai fait de mal?

+2

double possible de [commande Shell dans le répertoire de tar exclure certains fichiers/dossiers] (http://stackoverflow.com/questions/984204/shell-command-to-tar-directory-exclude-certains-fichiers-dossiers) –

Répondre

151

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

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

Merci, c'était "l'erreur". – suresh

+0

Merci, cela a fonctionné pour moi;) – Yuday

+5

Pour exclure le dossier entier et son contenu: tar -pczvf MyBackup.tar.gz/home/utilisateur/public_html/--exclude "/ home/utilisateur/public_html/tmp/*" –

26

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

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

Merci , cela a fonctionné pour moi sur une vieille boîte Ubuntu 14.04 LTS. – Jamsi

+3

Cela a fonctionné sur macOS Sierra. –

+1

J'avais aussi besoin de faire ça sur OS X. – TheJacobTaylor

15

Oui, retirer la queue / et (au moins dans ubuntu 11.04) tous les chemins donnés doit être un chemin relatif ou complet. Vous ne pouvez pas mélanger les 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 les journaux répertoire mais

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

travaillera

+0

Travailler pour moi quand je supprime le chemin absolu dans l'argument d'exclusion. – jruzafa

+1

La pointe sur le mélange des chemins absolus et relatifs était la clé pour moi ici –

2

Essayez cette

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

L'option exclude doit inclure le signe = et " ne sont pas nécessaires.

--exclude=/home/user/public_html/tmp 
6

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

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écompressé:

tar -tf backup.tar.gz