8

У меня есть каталог установки, как показано ниже:

folder_x
file.y
file.z

Я хотел бы создать файл tar, чтобы при его извлечении структура выглядела примерно так:

dir_q/folder_x
dir_q/file.y
dir_q/file.z

Как я могу заставить это работать, используя tar? Для справки, текущая команда, которую я использую:

tar -czf archive.tar.gz file.y file.z folder_x

2 ответа2

10

Я никогда не использовал опцию --transform, но я понял, что она сделает то, что вам нужно:

tar -czf archive.tar.gz --transform 's,^,dir_q/,' file.y file.z folder_x

Реализовать использование вместо , в качестве разделителя, поэтому мы можем добавить слэш.

1

Если вы не против создания нового каталога ...

mkdir dir_q;tar -C $_ -xzvf archive.tar.gz

в качестве альтернативы, создайте новый каталог, распакуйте файл в этот каталог, затем повторно скопируйте его из родительского каталога, чтобы включить его имя в извлеченную версию. Таким образом, вам не нужно запоминать какие-то супер длинные вызовы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .