Различные утилиты tar ведут себя по-разному в этом отношении, поэтому хорошо быть осторожным. Для файла tar, который вы не создали, всегда перечисляйте оглавление перед его извлечением.
Solaris tar :
Названные файлы извлекаются из tar-файла и записываются в каталог, указанный в tar-файле, относительно текущего каталога. Используйте относительные имена файлов и каталогов для извлечения.
Абсолютные имена путей, содержащиеся в архиве tar, распаковываются с использованием абсолютных имен путей, то есть передняя косая черта (/) не удаляется.
В случае файла tar с полными (абсолютными) путями, такими как:
/tmp/real-file
/etc/sneaky-file-here
... если вы извлечете такой файл, вы получите оба файла.
GNU tar :
По умолчанию GNU tar отбрасывает ведущий /
на ввод или вывод и жалуется на имена файлов, содержащих ..
компонент. Есть опция, которая отключает это поведение:
--absolute-names
-P
Не удаляйте начальные косые черты из имен файлов и разрешайте имена файлов, содержащие ..
компонент имени файла.
... если вы извлечете полностью исправленный tar-файл, используя GNU tar, не используя -P
опцию, он скажет вам:
tar: удаление ведущих /
из имен членов
и распакует файл в подкаталоги вашего текущего каталога.
AIX tar :
ничего не говорит об этом и ведет себя как tar-архив Solaris - он создает и извлекает tar-файлы с полными / абсолютными путями.
HP-UX tar :
(лучшая онлайн-ссылка приветствуется)
ПРЕДУПРЕЖДЕНИЯ
Невозможно восстановить абсолютный путь к относительной позиции.
OpenBSD tar :
-P
Не удаляйте ведущие косые черты ( /
) из путей. По умолчанию необходимо удалить ведущие косые черты.
Также есть -P
опции, реализованные для tar
macOS, FreeBSD и NetBSD с той же семантикой, с добавлением, что tar
во FreeBSD и macOS «откажется извлекать записи архива, чьи имена путей содержат ..
или чей целевой каталог будет изменен символической ссылкой» без -P
.
Звезда Шилитоола :
-/
Не удаляйте начальные косые черты из имен файлов при извлечении архива. Архив tar с абсолютными путями обычно плохая идея. В других реализациях tar их, возможно, никогда не удастся извлечь без заделывания существующих файлов. По этой причине звездочка по умолчанию удаляет косые черты из имен файлов в режиме извлечения.
-P
опция, которая влияет на его поведение в этом отношении.