बैश स्क्रिप्ट में निर्देशिका उपस्थिति की पुष्टि करना
बैश शेल स्क्रिप्ट लिखते समय, संचालन करने से पहले निर्देशिका के अस्तित्व को सत्यापित करना अक्सर आवश्यक होता है। यह सुनिश्चित करना कि एक निर्देशिका मौजूद है, त्रुटियों को रोका जा सकता है और आपकी स्क्रिप्ट को अधिक मजबूत बनाया जा सकता है।
इस गाइड में, हम यह जांचने के लिए उपयोग की जाने वाली कमांड का पता लगाएंगे कि बैश शेल स्क्रिप्ट के भीतर कोई निर्देशिका मौजूद है या नहीं। यह विधि स्क्रिप्टिंग कार्यों के लिए आवश्यक है जिसमें निर्देशिका हेरफेर और सत्यापन शामिल है।
आज्ञा | विवरण |
---|---|
-d | एक बैश सशर्त अभिव्यक्ति का उपयोग यह जांचने के लिए किया जाता है कि कोई निर्देशिका मौजूद है या नहीं। |
if | किसी शर्त के आधार पर कोड निष्पादित करने के लिए बैश, पायथन और पावरशेल में एक सशर्त विवरण शुरू करता है। |
os.path.isdir() | एक पायथन फ़ंक्शन का उपयोग यह जांचने के लिए किया जाता है कि निर्दिष्ट पथ एक मौजूदा निर्देशिका है या नहीं। |
Test-Path | एक PowerShell cmdlet का उपयोग यह जांचने के लिए किया जाता है कि कोई पथ मौजूद है या नहीं और उसका प्रकार (फ़ाइल या निर्देशिका) निर्धारित करता है। |
print() | एक पायथन फ़ंक्शन जो कंसोल पर एक संदेश आउटपुट करता है। |
Write-Output | एक पॉवरशेल सीएमडीलेट जो कंसोल या पाइपलाइन को आउटपुट भेजता है। |
निर्देशिका अस्तित्व स्क्रिप्ट को समझना
बैश स्क्रिप्ट शेबंग से शुरू होती है (#!/bin/bash), यह दर्शाता है कि स्क्रिप्ट को बैश शेल में निष्पादित किया जाना चाहिए। स्क्रिप्ट वेरिएबल के लिए एक निर्देशिका पथ सेट करती है DIR. सशर्त कथन if [ -d "$DIR" ] का उपयोग करके जाँचता है कि निर्दिष्ट निर्देशिका मौजूद है या नहीं -d झंडा। यदि निर्देशिका मौजूद है, तो यह "निर्देशिका मौजूद है" प्रिंट करता है। अन्यथा, यह "निर्देशिका मौजूद नहीं है" प्रिंट करता है। यह स्क्रिप्ट उन कार्यों को स्वचालित करने के लिए उपयोगी है जो किसी निर्देशिका की उपस्थिति पर निर्भर करते हैं।
पायथन उदाहरण में, स्क्रिप्ट आयात करती है os मॉड्यूल, जो एक फ़ंक्शन प्रदान करता है जिसे कहा जाता है os.path.isdir(). यह फ़ंक्शन जाँचता है कि निर्दिष्ट पथ एक निर्देशिका है या नहीं। कार्यक्रम check_directory एक तर्क के रूप में एक पथ लेता है और उपयोग करता है os.path.isdir() यह निर्धारित करने के लिए कि क्या यह मौजूद है, एक उपयुक्त संदेश प्रिंट करना। PowerShell स्क्रिप्ट का उपयोग करता है Test-Path निर्देशिका के अस्तित्व की जाँच करने के लिए cmdlet। -PathType Container पैरामीटर यह सुनिश्चित करता है कि पथ एक निर्देशिका है। यदि निर्देशिका मौजूद है, तो यह "निर्देशिका मौजूद है" आउटपुट देता है; अन्यथा, यह आउटपुट देता है "निर्देशिका मौजूद नहीं है।"
बैश स्क्रिप्ट में निर्देशिका अस्तित्व की जाँच करना
बैश शैल स्क्रिप्ट
#!/bin/bash
# Script to check if a directory exists
DIR="/path/to/directory"
if [ -d "$DIR" ]; then
echo "Directory exists."
else
echo "Directory does not exist."
fi
निर्देशिका उपस्थिति को सत्यापित करने के लिए पायथन का उपयोग करना
पायथन स्क्रिप्ट
import os
# Function to check if a directory exists
def check_directory(path):
if os.path.isdir(path):
print("Directory exists.")
else:
print("Directory does not exist.")
# Example usage
check_directory("/path/to/directory")
PowerShell का उपयोग करके निर्देशिका अस्तित्व की जाँच करें
पॉवरशेल स्क्रिप्ट
# PowerShell script to check if a directory exists
$dir = "C:\path\to\directory"
if (Test-Path -Path $dir -PathType Container) {
Write-Output "Directory exists."
} else {
Write-Output "Directory does not exist."
}
निर्देशिका सत्यापन के लिए उन्नत तकनीकें
निर्देशिका अस्तित्व के लिए बुनियादी जांच से परे, उन्नत स्क्रिप्टिंग में अतिरिक्त सत्यापन चरण शामिल हो सकते हैं। उदाहरण के लिए, निर्देशिका अनुमतियों की जाँच करना महत्वपूर्ण हो सकता है। बैश में, -r फ़्लैग जाँचता है कि निर्देशिका पढ़ने योग्य है या नहीं, -w जाँचता है कि क्या यह लिखने योग्य है, और -x जाँचता है कि क्या यह निष्पादन योग्य है। इन झंडों को सशर्त बयानों में जोड़ा जा सकता है ताकि यह सुनिश्चित किया जा सके कि निर्देशिका न केवल मौजूद है बल्कि स्क्रिप्ट के संचालन के लिए आवश्यक अनुमतियां भी हैं।
एक अन्य उन्नत तकनीक में निर्देशिकाएँ बनाना शामिल है यदि वे मौजूद नहीं हैं। बैश में, mkdir -p कमांड यह सुनिश्चित करता है कि यदि आवश्यक हो तो संपूर्ण पथ बनाया गया है। इसी तरह, पायथन में, os.makedirs() फ़ंक्शन एक ही उद्देश्य को पूरा करता है। ये तकनीकें आपकी स्क्रिप्ट की मजबूती और लचीलेपन को बढ़ाती हैं, जिससे यह सुनिश्चित होता है कि वे विभिन्न परिदृश्यों को खूबसूरती से संभाल सकें।
निर्देशिका जाँच के बारे में अक्सर पूछे जाने वाले प्रश्न
- मैं कैसे जांचूं कि कोई निर्देशिका बैश में पढ़ने योग्य है या नहीं?
- आदेश का प्रयोग करें [ -r "$DIR" ] यह जांचने के लिए कि क्या कोई निर्देशिका पढ़ने योग्य है।
- यदि बैश में यह मौजूद नहीं है तो मैं एक निर्देशिका कैसे बनाऊं?
- आदेश का प्रयोग करें mkdir -p "$DIR" यदि कोई निर्देशिका और उसके माता-पिता मौजूद नहीं हैं तो उन्हें बनाने के लिए।
- किसके बराबर है mkdir -p पायथन में?
- पायथन में समतुल्य कमांड है os.makedirs(path, exist_ok=True).
- मैं कैसे जांचूं कि किसी निर्देशिका के पास बैश में लिखने की अनुमति है या नहीं?
- आदेश का प्रयोग करें [ -w "$DIR" ] यह जांचने के लिए कि क्या कोई निर्देशिका लिखने योग्य है।
- क्या मैं एक ही बैश स्टेटमेंट में एकाधिक चेक जोड़ सकता हूँ?
- हां, आप चेक का उपयोग करके संयोजन कर सकते हैं -a तार्किक और के लिए -o तार्किक या के लिए.
- मैं कैसे जांचूं कि कोई निर्देशिका बैश में निष्पादन योग्य है या नहीं?
- आदेश का प्रयोग करें [ -x "$DIR" ] यह जांचने के लिए कि क्या कोई निर्देशिका निष्पादन योग्य है।
- किसी निर्देशिका की जाँच करते समय मैं पायथन में अपवादों को कैसे संभालूँ?
- पायथन में निर्देशिकाओं की जाँच करते समय अपवादों को संभालने के लिए ट्राई-एक्सेप्ट ब्लॉक का उपयोग करें।
- क्या करता है Test-Path PowerShell में cmdlet क्या है?
- Test-Path यदि कोई पथ मौजूद है और उसका प्रकार (फ़ाइल या निर्देशिका) तो cmdlet जाँचता है।
निर्देशिका जाँच पर अंतिम विचार
स्क्रिप्टिंग में यह सुनिश्चित करना एक मौलिक कार्य है कि उस पर संचालन करने से पहले एक निर्देशिका मौजूद है। बैश, पायथन, या पॉवरशेल में उपयुक्त कमांड का उपयोग करके, आप त्रुटियों को रोक सकते हैं और सुनिश्चित कर सकते हैं कि आपकी स्क्रिप्ट सुचारू रूप से चले। जिन तकनीकों पर चर्चा की गई है, जैसे अनुमतियाँ जाँचना और निर्देशिकाएँ बनाना जब वे मौजूद नहीं हैं, आपकी स्क्रिप्ट में मजबूती जोड़ती हैं। चाहे आप कार्यों को स्वचालित कर रहे हों या अधिक जटिल स्क्रिप्ट बना रहे हों, ये विधियाँ निर्देशिका सत्यापन को संभालने के लिए एक विश्वसनीय आधार प्रदान करती हैं।