Архив tar не распаковывается - «Путь содержит« .. »»

8

Название файла 2014-12-12 04-00-01.tar. Я выполнил команду:

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

На выходе получается много строк вида:

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

А затем несколько из формы:

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

Кажется, я не был очень осторожен, когда писал сценарий резервного копирования. Как я могу распаковать файл?

Том смит
источник

Ответы:

11

Вы захотите добавить флаг P(или -P) в вашу командную строку. Из справочной страницы:

-P сохранить имена путей. По умолчанию абсолютные имена путей (те, которые начинаются с символа /, удаляют начальную косую черту как при создании архивов, так и при извлечении из них. Также tar откажется извлекать записи архива, имена путей которых содержат .. или чей целевой каталог будет изменен символическая ссылка. Эта опция подавляет эти поведения.

Попробуй tar Pxvf 2014-12-12\ 04-00-01.tar. Обратите внимание, что вам понадобится доступ для записи в родительский каталог рабочего каталога, в который вы вызываете команду.

zackse
источник
Это сделало трюк!
Том Смит
0

Вы можете попробовать:
mkdir ./dir
tar xvf 2014-12-12\ 04-00-01.tar -C --./dir

НРС 3
источник
tar: could not chdir to '--./dir'
Том Смит
Странный. Попробуй tar xvf 2014-12-12\ 04-00-01.tar -C --dirвместо этого.
LDC3
Что означает двойная черта?
Xen2050
Это в файле man, я думаю, это указывает на то, что следующие буквы являются частью команды, поскольку вы можете иметь этоtar xv -C --dir -f --2014-12-12\ 04-00-01.tar
LDC3