Ви можете скористатися опцією -C
(або, --directory
якщо ви віддаєте перевагу довгі варіанти), щоб вказати цільовий каталог на ваш вибір, якщо ви використовуєте версію Gnu tar
. Каталог повинен існувати:
mkdir foo
tar -xzf bar.tar.gz -C foo
Якщо ви не використовуєте tar
здатний витягнути в певний каталог, cd
перед викликом ви можете просто увійти в ваш цільовий каталог tar
; тоді вам, звичайно, доведеться дати повний шлях до свого архіву. Ви можете зробити це в підширці для визначення обсягу, щоб уникнути впливу навколишнього сценарію:
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