में सभी उप-निर्देशिकाओं में सभी फ़ाइलों को gzip करने के लिए कैसे मैं अपने वर्तमान स्थान की उप निर्देशिकाओं में पुनरावृत्ति करना चाहता हूं और प्रत्येक फ़ाइल को अलग-अलग gzip करना चाहता हूं। एक निर्देशिका में फ़ाइलों को ज़िप करने के लिए, मैंबैश
for file in *; do gzip "$file"; done
उपयोग करते हैं लेकिन यह सिर्फ वर्तमान निर्देशिका और वर्तमान निर्देशिका का नहीं उप निर्देशिकाओं पर काम कर सकते हैं। मैं उपर्युक्त कथन कैसे लिख सकता हूं ताकि यह सभी उपनिर्देशिकाओं में फ़ाइलों को भी ज़िपित कर सके?
आपकी आखिरी वाक्य एक आम गलत जानकारी है। पता लगाएं कि एक फ़ाइल नाम कहां से शुरू होता है और यह कहां समाप्त होता है। खुद, इसमें रिक्त स्थान या लाइनब्रेक और अन्य मजेदार चीजों के साथ कोई समस्या नहीं है। तो '-exec gzip {}' एक फ़ाइल नाम के साथ gzip को कॉल करता है, और चूंकि कोई मध्यवर्ती खोल नहीं लगाया जाता है, जो डिलीमीटर के रूप में रिक्त स्थान की व्याख्या कर सकता है, gzip पूरे फ़ाइल नाम प्राप्त करेगा। खोज के मैनपेज में संकेत पुराना लगता है और इसका मतलब है: आपका खोल खोजने के लिए इसे पार करने से पहले {} को समझने का प्रयास कर सकता है, लेकिन ऐसा कोई खोल नहीं देखा गया है [वर्षों से] (http://unix.stackexchange.com/q/ 8647/4485)। –
आप हर दिन कुछ नया सीखते हैं। पाठ के लिए धन्यवाद! * .gz फ़ाइलों को बाहर करने के लिए –
+1 – GuruM