Архив 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. Обратите внимание, что вам понадобится доступ для записи в родительский каталог рабочего каталога, в который вы вызываете команду.


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

0

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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.