tar - Entfernt führende Verzeichniskomponenten beim Extrahieren


104

Wie können Sie nur das Zielverzeichnis und nicht den vollständigen Verzeichnisbaum extrahieren?

komprimieren

tar cf /var/www/site.tar /var/www_bak/site

Extrakt

tar xf /var/www/site.tar -C /tmp

Dies erzeugt:

/tmp/var/www/site

Wie kann vermieden werden, dass beim Extrahieren der Datei der gesamte Verzeichnisbaum erstellt wird?

Was ich daraus extrahieren möchte:

/tmp/site

Antworten:


34

Warum nicht die -COption beim Erstellen verwenden:

$ tar cf /var/www/site.tar -C /var/www_bak/ site

1
TMTOWTDI. Das würde auch funktionieren, mit der gleichen -COption;)
MikeyB

12
Er möchte den Pfad von einigen führenden Komponenten entfernen, nicht das Ausgabeverzeichnis ändern. Die richtige Antwort finden Sie weiter unten.
Aymericbeaumet

4
Wir können es nicht verwenden, wenn jemand anderes das Archiv vorbereitet.

Weil `` `_t = Präfix - $ (Datum +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" - Dateien ...; tar -df ".backups / $ _ t.tar.bz2" --strip-components = 1 `` `
AnrDaemon

258

Sie möchten folgende --strip-components=NUMBEROptionen nutzen tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Ihr Befehl wäre:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp

19
Diese Antwort ist besser, weil Sie vor der Teererzeugung nicht darüber nachdenken müssen. Sie können es mit einer bereits erstellten TAR-Datei verwenden. Vielen Dank @MikeyB!
Fabien Quatravaux

4
Ich freue mich, Ihnen mitteilen zu können, dass dies sowohl in GNU-Teer als auch in BSD-Teer funktioniert.
Nathan Osman

4
und weil Sie vielleicht nicht der Teerschöpfer sind ... (oder wenn Sie es mit einem anderen Tool machen und dieses Tool dumme Sachen macht ...)
Xenoterracide

Möglicherweise fehlt --strip-componentsIhnen noch die Markierung, wenn Sie die in die Busybox eingebettete Implementierung von verwenden tar.
Sylvainulg

1
@FabienQuatravaux Ja, wenn Sie einen Fehler gemacht und ein Archiv erstellt haben, das führende Verzeichnisse enthält, die Sie beim Extrahieren nicht sehen möchten. Es ist jedoch klarer, das Archiv zunächst ohne die führenden unerwünschten Verzeichnisse zu erstellen.
Calaf
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.