Bash Scripting

Bash में कुशल फ़ाइल गणना

Spread the love

Bash स्क्रिप्टिंग में किसी निर्देशिका के अंदर फ़ाइलों की सही गणना एक मौलिक कार्य है। यह गाइड दो विधियों को प्रस्तुत करती है, उनकी ताकत और कमजोरियों को उजागर करती है ताकि आप अपनी स्थिति के लिए सर्वोत्तम दृष्टिकोण चुन सकें।

विषयसूची

find कमांड का उपयोग करना

find कमांड फ़ाइलों की गणना के लिए एक मजबूत और विश्वसनीय समाधान प्रदान करता है, यहां तक कि जिनके नामों में रिक्त स्थान या विशेष वर्ण हैं। यह अधिकांश परिदृश्यों के लिए अनुशंसित दृष्टिकोण है।

find . -type f -print0 | wc -l

व्याख्या:

  • find .: वर्तमान निर्देशिका (.) में खोज शुरू करता है। यदि आवश्यक हो तो . को किसी विशिष्ट पथ से बदलें (जैसे, /path/to/your/directory)।
  • -type f: खोज को केवल नियमित फ़ाइलों तक सीमित करता है, निर्देशिकाओं और अन्य फ़ाइल प्रकारों को छोड़कर।
  • -print0: फ़ाइलनामों को एक नल वर्ण से अलग करता है, रिक्त स्थान या विशेष वर्ण वाले फ़ाइलनामों के साथ समस्याओं को रोकता है। यह विश्वसनीयता के लिए महत्वपूर्ण है।
  • | wc -l: फ़ाइलनामों की नल-पृथक सूची को wc -l में पाइप करता है, जो पंक्तियों (और इस प्रकार, फ़ाइलों) की गणना करता है।

ls कमांड का उपयोग करना

ls कमांड फ़ाइलों की गणना के लिए एक सरल, हालांकि कम मजबूत, विधि प्रदान करता है। यह केवल सीधी फ़ाइलनामों वाली निर्देशिकाओं के लिए उपयुक्त है और रिक्त स्थान या विशेष वर्ण वाली फ़ाइलों से निपटते समय इससे बचना चाहिए।

ls -l | grep "^-" | wc -l

व्याख्या:

  • ls -l: फ़ाइल प्रकार की जानकारी दिखाते हुए, लंबे प्रारूप में फ़ाइलों को सूचीबद्ध करता है।
  • grep "^-": आउटपुट को फ़िल्टर करता है, केवल हाइफ़न (-) से शुरू होने वाली पंक्तियों का चयन करता है, जो एक नियमित फ़ाइल को इंगित करता है।
  • wc -l: शेष पंक्तियों की गणना करता है, जो फ़ाइलों की संख्या का प्रतिनिधित्व करती है।

महत्वपूर्ण नोट: यदि फ़ाइलनाम हाइफ़न से शुरू होते हैं या अन्य वर्ण होते हैं जो grep पैटर्न में हस्तक्षेप करते हैं, तो यह विधि त्रुटियों से ग्रस्त है। विश्वसनीय परिणामों के लिए, विशेष रूप से उत्पादन वातावरण में, find कमांड का उपयोग करें।

संक्षेप में, जबकि दोनों विधियाँ फ़ाइलों की गणना कर सकती हैं, find कमांड की मजबूती इसे विविध परिदृश्यों में सटीक और विश्वसनीय फ़ाइल गणना के लिए पसंदीदा विकल्प बनाती है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *