Das Tar-Archiv wird nicht entpackt - "Pfad enthält '..'"

8

Der Name der Datei 2014-12-12 04-00-01.tar. Ich habe den Befehl ausgeführt:

tar xvf 2014-12-12\ 04-00-01.tar

Die Ausgabe besteht aus vielen Zeilen des Formulars:

x ../server/: Path contains '..'

Und dann ein paar der Form:

tar: copyfile unpack (../server/logs/.DS_Store) failed: No such file or directory

Es scheint, dass ich beim Schreiben des Backup-Skripts nicht sehr vorsichtig war. Wie kann ich die Datei entpacken?

Thom Smith
quelle

Antworten:

11

Sie möchten das P(oder -P) Flag zu Ihrer Befehlszeile hinzufügen . Aus der Manpage:

-P Pfadnamen beibehalten. Standardmäßig werden bei absoluten Pfadnamen (bei solchen, die mit einem / -Zeichen beginnen, der führende Schrägstrich sowohl beim Erstellen als auch beim Extrahieren von Archiven entfernt. Außerdem lehnt tar das Extrahieren von Archiveinträgen ab, deren Pfadnamen .. enthalten oder deren Zielverzeichnis durch a geändert wird symlink. Diese Option unterdrückt diese Verhaltensweisen.

Versuchen Sie es tar Pxvf 2014-12-12\ 04-00-01.tar. Beachten Sie, dass Sie Schreibzugriff auf das übergeordnete Verzeichnis des Arbeitsverzeichnisses benötigen, in dem Sie den Befehl aufrufen.

zackse
quelle
Das hat funktioniert!
Thom Smith
0

Du könntest es versuchen:
mkdir ./dir
tar xvf 2014-12-12\ 04-00-01.tar -C --./dir

LDC3
quelle
tar: could not chdir to '--./dir'
Thom Smith
Seltsam. Versuchen Sie es tar xvf 2014-12-12\ 04-00-01.tar -C --dirstattdessen.
LDC3
Was bedeutet der Doppelstrich?
Xen2050
Es ist in der Man-Datei, ich denke, es zeigt an, dass die folgenden Buchstaben Teil des Befehls sind, da Sie haben könnentar xv -C --dir -f --2014-12-12\ 04-00-01.tar
LDC3