Archiwum tar nie rozpakuje się - „Ścieżka zawiera„ .. ””

8

Nazwa pliku 2014-12-12 04-00-01.tar. Wykonałem polecenie:

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

Wynikiem jest wiele wierszy formularza:

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

A potem kilka postaci:

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

Wygląda na to, że nie byłem bardzo ostrożny, kiedy napisałem skrypt kopii zapasowej. Jak mogę rozpakować plik?

Thom Smith
źródło

Odpowiedzi:

11

Będziesz chciał dodać flagę P(lub -P) do linii poleceń. Z strony podręcznika:

-P Zachowaj nazwy ścieżek. Domyślnie bezwzględne nazwy ścieżek (te, które zaczynają się od znaku /, usuwają wiodący ukośnik zarówno podczas tworzenia archiwów, jak i wypakowywania z nich. Tar również odmówi wyodrębnienia pozycji archiwów, których ścieżki zawierają ... lub których katalog docelowy zostałby zmieniony przez dowiązanie symboliczne Ta opcja eliminuje te zachowania.

Spróbować tar Pxvf 2014-12-12\ 04-00-01.tar. Pamiętaj, że potrzebujesz dostępu do zapisu do katalogu nadrzędnego katalogu roboczego, w którym wywołujesz polecenie.

zackse
źródło
To załatwiło sprawę!
Thom Smith,
0

Możesz spróbować:
mkdir ./dir
tar xvf 2014-12-12\ 04-00-01.tar -C --./dir

LDC3
źródło
tar: could not chdir to '--./dir'
Thom Smith,
Dziwne. Spróbuj tar xvf 2014-12-12\ 04-00-01.tar -C --dirzamiast tego.
LDC3,
Co oznacza podwójny kreska?
Xen2050,
Jest w pliku man, myślę, że wskazuje, że następujące litery są częścią polecenia, ponieważ możesztar xv -C --dir -f --2014-12-12\ 04-00-01.tar
LDC3