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
Или, если не подходит ни абсолютный путь, ни относительный путь к файлу архива, вы также можете использовать его для обозначения архива вне области подсекции: