Извлеките определенную папку в определенный каталог из tar.gz

Я искал и нашел, как две части того, что я хочу, но ничего, что позволило бы вам сделать это в целом....

То, что я хотел бы сделать, это извлечь определенную папку из tar.gz в другую папку по другому пути, чем в tar.gz.

Например:

  • Путь к каталогу в моем файле backup.tar.gz: a/b/c/d (d - это мой основной каталог со многими другими)

  • Я хочу распаковать каталог 'd' в 'm' внутри этого другого пути к серверу: a/b/m

  • Если я попытаюсь этот код: tar -xzf backup.tar.gz -C a / b / m

** Структура папок выглядит следующим образом: a/b/m/a/b/c/d, но я бы хотел, чтобы она выглядела как /b/m+d, чтобы все мои основные файлы / папки в архиве находились в "d" путь заканчивается в пути "м"

Любая помощь с благодарностью.

Спасибо!

2 ответа

Решение

Хорошо, я понял это!

По сути, я могу просто использовать команду strip, чтобы удалить количество ведущих каталогов x. В этом случае моя команда будет выглядеть так:

tar -xzf backup.tar.gz --strip-components = 3 -C a / b / m

Это удалило первые три пути к каталогам из моего архива (backup.tar.gz: a/b/c/d) перед тем, как распаковать его в каталог описания.

Теперь это выглядит так: а / б / м + д

Это работало для меня на OS X (извлечение определенных файлов из репозитория GitHub):

# Move to target directory and run:
curl -#L https://github.com/USER/REPO/tarball/BRANCH | tar -xzv --strip-components 3 --include=*./some/folder
Другие вопросы по тегам