คุณสามารถใช้ตัวเลือก-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
หรือหากไม่ใช่พา ธ สัมบูรณ์หรือพา ธ สัมพัทธ์กับไฟล์เก็บถาวรคุณก็สามารถใช้สิ่งนี้เพื่อตั้งชื่อไฟล์เก็บถาวรนอกเชลล์ย่อย scoping:
TARGET_PATH=a/very/complex/path/which/might/even/be/absolute
mkdir -p "$TARGET_PATH"
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz