2011-03-03 17 views
12

मेरे पास एक फ़ोल्डर में लगभग 200,000 अंगूठे हैं जो सभी gzipped के साथ समाप्त होते हैं .tar.gz जो मैं करना चाहता हूं वह उस फ़ोल्डर में सभी फ़ाइलों को निकालने के लिए है लेकिन एक अलग फ़ोल्डर क्या किसी को ऐसा करने का आदेश पता है? मुझे यह ऑनलाइन मिला लेकिन मुझे नहीं पता कि एक अलग फ़ोल्डर में निकालने के लिए इसका उपयोग कैसे किया जाए। आपउबंटू नई निर्देशिका में एकाधिक .tar.gz फ़ाइलों को निकालें

tar 

उपयोग कर रहे हैं सभी फ़ाइलों को निकालने के लिए अभी

for i in *.tar.gz; do tar xvzf $i -C path/to/output/directory; done 
+0

यह प्रोग्रामिंग से संबंधित कैसे है? –

+0

कोई विचार नहीं है लेकिन मुझे यहां पर समान प्रश्न मिलते हैं इसलिए मुझे लगा कि मैं पूछूंगा क्योंकि यहां बहुत सारे ज्ञान हैं। – chris

+0

आपके जैसा कोई भी प्रश्न हटा दिया गया है या बंद/माइग्रेट किया गया है। –

उत्तर

27

लक्ष्य निर्देशिका का चयन करने के -C विकल्प जोड़ें। मुझे विश्वास है कि आप कौन सी निर्देशिका को आउटपुट में सेट कर सकते हैं।

वह कुछ इस तरह होगा:

for i in *.tar.gz; do tar -xvzf $i -C directory; done 

जहां निर्देशिका आप को फ़ाइलों को अलग करना चाहते हैं फ़ोल्डर का मार्ग है।

http://www.computerhope.com/unix/utar.htm (टैर पर प्रलेखन) का संदर्भ लें।

+0

काम करने लगता है, धन्यवाद। – chris

2
actdir=`pwd` 
for files in *tar.gz ; do 
    filedir=`basename $files .tar.gz` 
    mkdir $filedir 
    cd $filedir 
    tar -xzf ../$files 
    cd $actdir 
done 

HTH

+0

मैं इस तथ्य से प्रभावित हूं कि टैर में स्वचालित रूप से फ़ोल्डर बनाने का विकल्प नहीं है। आपकी लिपि के लिए धन्यवाद, बहुत उपयोगी है। –

2

-C विकल्प शायद बेहतर है। आप यह भी कर सकता है:

$ mkdir/path/to/newfolder
$ के लिए * .tar.gz में मैं; फ़ाइलें करें = "$ फ़ाइलें $ (readlink -f $ i)"; किया गया # फ़ाइल नामों की पूर्ण सूची बनाता है
$ सीडी/पथ/से/न्यूफोल्डर
$ $ में $ फाइलों में; tar -zxvf $ i करो; किया

संबंधित मुद्दे