it-swarm.com.de

Verzeichnis beim Erstellen einer .tar.gz-Datei ausschließen

Ich habe einen /public_html/-Ordner. In diesem Ordner befindet sich ein /tmp/-Ordner mit 70 GB Dateien, die ich nicht wirklich brauche.

Jetzt versuche ich, einen .tar.gz aus /public_html/ mit Ausnahme von /tmp/ zu erstellen.

Dies ist der Befehl, den ich ausgeführt habe:

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

Der Teer wird noch erstellt, und wenn ich ls -sh mache, kann ich sehen, dass MyBackup.tar.gz bereits etwa 30 GB hat, und ich weiß genau, dass /public_html/ ohne /tmp/ nicht mehr als 1 GB Dateien hat.

Was habe ich falsch gemacht?

97
suresh

Entfernen Sie das letzte/am Ende des Verzeichnispfads, um es auszuschließen

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

Verschieben Sie den --exclude vor dem Include.

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

Ja, entferne den nachfolgenden / und (zumindest in Ubuntu 11.04) müssen alle angegebenen Pfade relativ oder vollständig sein. Sie können im gleichen Befehl keine absoluten und relativen Pfade kombinieren.

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

schließt Log-Verzeichnis aber nicht aus

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

wird funktionieren

15
user

Der korrekte Befehl zum Ausschließen des Verzeichnisses von der Komprimierung lautet:

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

Stellen Sie sicher, dass Sie --exclude vor den Quell- und Zielelementen angeben

und Sie können den Inhalt der Datei tar.gz überprüfen, ohne sie zu entpacken: 

tar -tf backup.tar.gz
7
oussaka

Versuche dies

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

Das hat für mich funktioniert:

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

Die akzeptierte Antwort funktionierte nicht für mich und führte unxutils tar auf Windows10 aus. Stattdessen musste ich die Dateien/Verzeichnisse als last -Parameter wie folgt archivieren:

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

Dann hat es funktioniert.

1
user2081279

Sie können auch mehrere mit nur einem --exclude ausschließen. Wie dieses Beispiel:

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

In --exclude= müssen Sie den Verzeichnisnamen ohne / beenden und zwischen MyBackup.tar.gz und / home/user/public_html/

Die Syntax lautet:

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