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?

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.


Das hat funktioniert!
Thom Smith

0

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


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
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.