Извлечение определенной папки в конкретный каталог из 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, но я хотел бы, чтобы он выглядел как a/b/m + d, так что все мои основные файлы/папки в архиве Путь 'd' заканчивается на пути 'm'
Любая помощь очень ценится.
Спасибо!
Ответы
Ответ 1
Хорошо, я понял это!
В принципе, я могу просто использовать команду strip, чтобы удалить число x ведущих каталогов. В этом случае моя команда будет выглядеть так:
tar -xzf backup.tar.gz --strip-components = 3 -C a/b/m
Это удалило первые три каталога путей из моего архива (backup.tar.gz: a/b/c/d), прежде чем извлечь его в каталог desctination.
Теперь он выглядит так: a/b/m + d
Ответ 2
Это работало для меня на 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