यदि आप Gnu संस्करण का उपयोग कर रहे हैं तो आप अपनी पसंद की लक्ष्य निर्देशिका देने के लिए विकल्प -C
(या --directory
यदि आप लंबे विकल्प पसंद करते हैं) का उपयोग कर सकते हैं 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