मेरे पास एक निर्देशिका है। इसमें लगभग 500K .gz फाइलें हैं।
मैं उस निर्देशिका में सभी .gz कैसे निकाल सकते हैं और .gz फ़ाइलों को हटा सकते हैं?
मेरे पास एक निर्देशिका है। इसमें लगभग 500K .gz फाइलें हैं।
मैं उस निर्देशिका में सभी .gz कैसे निकाल सकते हैं और .gz फ़ाइलों को हटा सकते हैं?
जवाबों:
यह करना चाहिए:
gunzip *.gz
find "$dir" -maxdepth 1 -name '*.gz' -print0 | xjobs -0 -l50 -v2 gunzip
उदाहरणों का उपयोग करके 50 तर्कों को प्रतिबंधित करना चाहते हैं (और उन्हें समानांतर में चलाने के लिए)।
स्पष्ट रूप से ऐसा करने का एक से अधिक तरीका है।
# This will find files recursively (you can limit it by using some 'find' parameters.
# see the man pages
# Final backslash required for exec example to work
find . -name '*.gz' -exec gunzip '{}' \;
# This will do it only in the current directory
for a in *.gz; do gunzip $a; done
मुझे यकीन है कि अन्य तरीके भी हैं, लेकिन यह शायद सबसे सरल है।
और इसे हटाने के लिए, केवल rm -rf *.gz
लागू निर्देशिका में करें
for foo in *.gz
do
tar xf "$foo"
rm "$foo"
done
प्रयत्न:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz
फिर कोशिश करो:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm
यह वर्तमान निर्देशिका में सभी .tar.gz फ़ाइलों को अनटार कर देगा और फिर सभी .tar.gz फ़ाइलों को हटा देगा। यदि आप एक स्पष्टीकरण चाहते हैं, "|" इसके पहले कमांड का स्टैडआउट लेता है, और उसके बाद कमांड की स्टड के रूप में उपयोग करता है। उन आदेशों और तर्कों को जानने के लिए "मैन कमांड " w / o का उपयोग करें । या, आप ऑनलाइन शोध कर सकते हैं।
.gz
फ़ाइल जरूरी एक संग्रह होने की जरूरत नहीं। उस स्थिति में आपके पास प्रदर्शन करने पर हटाने के लिए कुछ भी नहीं होगाgzip -d file.gz
।