Anda dapat menggunakan opsi -C
(atau --directory
jika Anda lebih suka opsi panjang) untuk memberikan direktori target pilihan Anda jika Anda menggunakan versi Gnu tar
. Direktori harus ada:
mkdir foo
tar -xzf bar.tar.gz -C foo
Jika Anda tidak menggunakan tar
kemampuan mengekstraksi ke direktori tertentu, Anda bisa cd
masuk ke direktori target Anda sebelum menelepon tar
; maka Anda harus memberikan jalur lengkap ke arsip Anda, tentu saja. Anda dapat melakukan ini dalam subkelas pelingkupan untuk menghindari memengaruhi skrip di sekitarnya:
mkdir foo
(cd foo; tar -xzf ../bar.tar.gz) # instead of ../ you can use an absolute path as well
Atau, jika jalur absolut atau jalur relatif ke file arsip tidak cocok, Anda juga dapat menggunakan ini untuk memberi nama arsip di luar subkelas pelingkupan:
TARGET_PATH=a/very/complex/path/which/might/even/be/absolute
mkdir -p "$TARGET_PATH"
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz