Как распаковать tar.gz в другой каталог

У меня есть архив

*. Tar.gz

Как я могу распаковать это в каталоге назначения?

Ответ 1

gzip -dc archive.tar.gz | tar -xf - -C /destination

или с GNU tar

tar xzf archive.tar.gz -C /destination

Ответ 2

Вы можете использовать опцию -C (или --directory, если вы предпочитаете длинные параметры), чтобы предоставить целевой каталог по вашему выбору, если вы используете версию Gnu tar. Каталог должен существовать:

mkdir foo
tar -xzf bar.tar.gz -C foo

Если вы не используете tar, способный к извлечению в определенный каталог, вы можете просто cd в целевой каталог до вызова tar; конечно, вам, конечно, придется дать полный путь к вашему архиву. Вы можете сделать это в области подсчета очков, чтобы избежать влияния на окружающий script:

mkdir foo
(cd foo; tar -xzf ../bar.tar.gz)  # instead of ../ you can use an absolute path as well

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

TARGET_PATH=a/very/complex/path/which/might/even/be/absolute
mkdir -p "$TARGET_PATH"
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz

Ответ 3

Извлекает myArchive.tar в каталог /destinationDirectory

Команды:

cd /destinationDirectory
pax -rv -f myArchive.tar -s ',^/,,'