मैं निर्देशिका और उपनिर्देशिकाओं में कई gzip फाइलें कैसे निकाल सकता हूं?


11

मैंने दोनों की कोशिश की है gzipऔर gunzipकमांड करता हूं, लेकिन मुझे या तो मिलता है

gunzip *.gz 
gzip: invalid option -- 'Y' 

gunzip -S-1800-01-01-000000-g01.h5.gz  
gzip: compressed data not read
 from a terminal. Use -f to force decompression. For help, type: gzip -h

अगर मैं -fविकल्प की कोशिश करता हूं तो एक ही फाइल पर काम करने में बहुत लंबा समय लगता है और कमांड सफलतापूर्वक निष्पादित नहीं होती है। क्या मैं कुछ भूल रहा हूँ?


2
क्या निर्देशिका में .gz फाइलें हैं जिनके नाम हाइफ़न के साथ शुरू होते हैं, जैसे कि -Y.something.gz? यदि ऐसा है तो आपको --यह सुनिश्चित करने के लिए ग्नू ध्वज का उपयोग करने की आवश्यकता हो सकती है कि उन्हें विकल्प के बजाय फाइलनाम के रूप में माना जाता हैgunzip -- *.gz
स्टीलड्राइवर

@steeldriver हाँ, मेरे पास कुछ फाइलें हैं, जो -
Herman Toothrot

कि कम से कम दो समस्याओं में से एक का कारण बना।
हरमन टूथ्रोट

जवाबों:


16

आप नीचे कमांड का उपयोग कर सकते हैं।

उस निर्देशिका पर जाएं जहां आपकी .gzफ़ाइल है और कमांड चलाएँ:

for f in *.gz ; do gunzip -c "$f" > /home/$USER/"${f%.*}" ; done

यह सभी फ़ाइल को मूल नाम से निकालेगा और इसे वर्तमान उपयोगकर्ता होम निर्देशिका ( /home/username) में संग्रहीत करेगा । आप इसे कहीं और बदल सकते हैं।

संपादित करें:

gunzip *.gz

यह कमांड भी काम करेगा। लेकिन, डिफ़ॉल्ट रूप से, यह मूल फ़ाइल को बदल देता है।


क्या आपने पढ़ा है कि मैंने अपने प्रश्न में क्या लिखा है? gunzip * .gz मेरे लिए काम नहीं कर रहा है। लेकिन पाश काम करता है, मैं हैरान हूं।
हरमन टूथ्रोट

लेकिन यह मेरे लिए और दूसरों के लिए भी काम कर रहा है कि क्यों 'अमान्य विकल्प -' Y '`दिखा रहा है। मुझे लगता है कि या तो आपकी फ़ाइल प्रारूप ठीक नहीं है या आप कमांड में किसी चीज़ को याद नहीं कर रहे हैं।
pl_rock

यह भी देखें unix.stackexchange.com/questions/56421/…
pl_rock

4

विकल्प # 1 : एकल उद्धरण (लघु संस्करण) का उपयोग करके कई फ़ाइलों को अनज़िप करें

gunzip '*.gz'

ध्यान दें कि यह *.gzशब्द दो एकल उद्धरणों के बीच में रखा गया है, ताकि शेल इसे वाइल्ड कार्ड वर्ण के रूप में पहचान न सके।

विकल्प # 2 : लूप के लिए शेल का उपयोग करके कई फ़ाइलों को अनज़िप करें (लंबा संस्करण)

for g in *.gz; do gunzip $g; done

स्रोत

संपादित करें:

मैंने अभी कोशिश की है:

gunzip -dk *.gz

और यह काम किया।

-dडिकम्प्रेस करना और kमूल फाइलें रखना।


क्या आपने gunzip ‘*.gz’ इस कमांड को चेक किया है मैं इस आदेश को चलाने में सक्षम नहीं हूं। यह त्रुटि दे रहा है।
13

का उपयोग gunzip '*.gz'नहीं gunzip ‘*.gz’ ( ' '`` `` नहीं)
बिलाल

मैं सिर्फ आपके आदेश को कॉपी कर रहा हूं और यह gzip: *.gz: No such file or directoryनया भी काम नहीं कर रहा है। क्या आपने कोशिश की है?
13

यह काम gunzip नहीं है '* .gz' gzip: * .gz: ऐसी कोई फ़ाइल या निर्देशिका
हरमन Toothrot

क्षमा करें, मैंने इसे नहीं किया! मैं इस समय वाइंडोव्स पर हूँ :(
बिलाल

0

लिनक्स उपयोगकर्ता:

वर्तमान निर्देशिका और इसके उप निर्देशिकाओं में .gz फ़ाइलों की न्यूनतम राशि निकालने के लिए निम्नलिखित कमांड का उपयोग करें

gunzip *.gz

वर्तमान निर्देशिका और इसके उप निर्देशिकाओं में .gz फ़ाइलों की संख्या को निकालने के लिए निम्नलिखित कमांड का उपयोग करें

sudo find . -name "*.gz" | xargs gunzip
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.