बैश में निर्देशिका अस्तित्व की जाँच का परिचय
बैश स्क्रिप्टिंग में, यह निर्धारित करना अक्सर आवश्यक होता है कि उस पर संचालन करने से पहले कोई विशिष्ट निर्देशिका मौजूद है या नहीं। यह जाँच त्रुटियों को रोकने और यह सुनिश्चित करने में मदद करती है कि आपकी स्क्रिप्ट सुचारू रूप से चले।
चाहे आप कार्यों को स्वचालित कर रहे हों या फ़ाइलों को प्रबंधित कर रहे हों, किसी निर्देशिका के अस्तित्व को सत्यापित करने का तरीका जानना एक मौलिक कौशल है। यह मार्गदर्शिका आपको आपकी बैश स्क्रिप्ट के भीतर निर्देशिकाओं की कुशलतापूर्वक जाँच करने के लिए आदेशों और तकनीकों के बारे में बताएगी।
आज्ञा | विवरण |
---|---|
-d | बैश में यह जांचने के लिए उपयोग किया जाता है कि कोई दिया गया पथ एक निर्देशिका है या नहीं। |
tee | बैश में कमांड जो मानक इनपुट से पढ़ता है और मानक आउटपुट और फ़ाइलों दोनों को लिखता है। |
os.path.isdir() | पायथन फ़ंक्शन यह जांचने के लिए कि क्या निर्दिष्ट पथ एक मौजूदा निर्देशिका है। |
Test-Path | यह जाँचने के लिए कि कोई पथ मौजूद है या नहीं, PowerShell cmdlet। |
-PathType Container | निर्देशिका के रूप में पथ प्रकार निर्दिष्ट करने के लिए टेस्ट-पाथ के साथ पावरशेल पैरामीटर का उपयोग किया जाता है। |
exit | स्थिति कोड के साथ स्क्रिप्ट से बाहर निकलने के लिए बैश कमांड, त्रुटि प्रबंधन के लिए उपयोगी। |
import os | ओएस मॉड्यूल को आयात करने के लिए पायथन स्टेटमेंट, ऑपरेटिंग सिस्टम के साथ इंटरैक्ट करने के लिए फ़ंक्शन प्रदान करता है। |
Write-Output | कंसोल पर आउटपुट भेजने के लिए PowerShell cmdlet। |
स्क्रिप्टिंग में निर्देशिका अस्तित्व जांच को समझना और उसका उपयोग करना
पहली बैश स्क्रिप्ट यह जांचने का एक सीधा तरीका है कि कोई निर्देशिका मौजूद है या नहीं। इसका उपयोग करता है -d एक के भीतर आदेश if में निर्दिष्ट निर्देशिका के अस्तित्व को सत्यापित करने के लिए कथन DIRECTORY चर। यदि निर्देशिका मौजूद है, तो यह "निर्देशिका मौजूद है" आउटपुट देता है। अन्यथा, यह आउटपुट देता है "निर्देशिका मौजूद नहीं है।" यह बुनियादी जांच उन स्क्रिप्टों में त्रुटियों को रोकती है जो आगे के संचालन के साथ आगे बढ़ने से पहले निर्देशिका की उपस्थिति पर निर्भर करती हैं। स्क्रिप्ट का उपयोग विभिन्न स्वचालन कार्यों में किया जा सकता है जहां निर्देशिका के अस्तित्व की पुष्टि करना महत्वपूर्ण है।
दूसरी बैश स्क्रिप्ट लॉगिंग और त्रुटि प्रबंधन को जोड़कर पहले पर आधारित है। यह का उपयोग करके चेक के परिणाम को एक निर्दिष्ट लॉगफ़ाइल में लॉग करता है tee कमांड, जो डिबगिंग और स्क्रिप्ट गतिविधियों पर नज़र रखने में मदद करता है। स्क्रिप्ट वर्तमान दिनांक और निर्देशिका जांच के परिणाम को कंसोल और लॉग फ़ाइल दोनों पर आउटपुट करती है। यदि निर्देशिका मौजूद नहीं है, तो स्क्रिप्ट 1 के स्टेटस कोड के साथ बाहर निकलती है, जो एक त्रुटि का संकेत देती है। यह उन्नत संस्करण अधिक जटिल स्क्रिप्टिंग वातावरणों के लिए उपयोगी है जहां लॉग बनाए रखना और त्रुटियों को शालीनता से संभालना आवश्यक है।
पायथन और पॉवरशेल के साथ क्रॉस-प्लेटफ़ॉर्म निर्देशिका अस्तित्व की जाँच करता है
पायथन स्क्रिप्ट निर्देशिका अस्तित्व की जाँच के लिए एक क्रॉस-प्लेटफ़ॉर्म समाधान प्रदान करती है। इसका उपयोग करता है os.path.isdir() से कार्य करें os मॉड्यूल यह निर्धारित करने के लिए कि क्या निर्दिष्ट पथ एक निर्देशिका है। यह स्क्रिप्ट उन वातावरणों में विशेष रूप से उपयोगी है जहां पायथन को प्राथमिकता दी जाती है या जब स्क्रिप्ट को बिना किसी संशोधन के विभिन्न ऑपरेटिंग सिस्टम पर चलाने की आवश्यकता होती है। पायथन की सरलता और पठनीयता इस दृष्टिकोण को बड़े पायथन अनुप्रयोगों या स्टैंडअलोन स्क्रिप्ट में एकीकृत करना आसान बनाती है।
पॉवरशेल स्क्रिप्ट विंडोज़ वातावरण के लिए एक मूल समाधान प्रदान करती है। इसका उपयोग करता है Test-Path के साथ cmdlet -PathType Container यह जांचने के लिए पैरामीटर कि पथ एक निर्देशिका है या नहीं। यदि निर्देशिका मौजूद है, तो यह "निर्देशिका मौजूद है" आउटपुट देता है। यदि नहीं, तो यह आउटपुट देता है "निर्देशिका मौजूद नहीं है।" पावरशेल के सीएमडीलेट्स का मजबूत सेट और विंडोज सिस्टम के साथ इसका एकीकरण इस दृष्टिकोण को विंडोज-आधारित बुनियादी ढांचे के भीतर काम करने वाले प्रशासकों और उपयोगकर्ताओं के लिए आदर्श बनाता है। इनमें से प्रत्येक स्क्रिप्ट विभिन्न स्क्रिप्टिंग आवश्यकताओं और वातावरणों को पूरा करते हुए, आगे के संचालन करने से पहले निर्देशिका अस्तित्व को सुनिश्चित करने के लिए अलग-अलग तरीकों का प्रदर्शन करती है।
बेसिक बैश कमांड का उपयोग करके निर्देशिका अस्तित्व की जाँच करना
बैश शेल स्क्रिप्टिंग का उपयोग कर स्क्रिप्ट
#!/bin/bash
# This script checks if a directory exists
DIRECTORY="/path/to/directory"
if [ -d "$DIRECTORY" ]; then
echo "Directory exists."
else
echo "Directory does not exist."
fi
बैश में लॉगिंग और त्रुटि प्रबंधन के साथ उन्नत निर्देशिका जाँच
लॉगिंग और त्रुटि प्रबंधन के साथ उन्नत बैश स्क्रिप्ट
# !/bin/bash
# This script checks if a directory exists and logs the result
DIRECTORY="/path/to/directory"
LOGFILE="/path/to/logfile.log"
echo "Checking if directory exists: $DIRECTORY" | tee -a "$LOGFILE"
if [ -d "$DIRECTORY" ]; then
echo "$(date): Directory exists." | tee -a "$LOGFILE"
else
echo "$(date): Directory does not exist." | tee -a "$LOGFILE"
exit 1
fi
क्रॉस-प्लेटफ़ॉर्म संगतता के लिए निर्देशिका अस्तित्व की जाँच करने के लिए पायथन का उपयोग करना
पायथन प्रोग्रामिंग भाषा का उपयोग कर स्क्रिप्ट
#!/usr/bin/env python3
# This script checks if a directory exists using Python
import os
directory = "/path/to/directory"
if os.path.isdir(directory):
print("Directory exists.")
else:
print("Directory does not exist.")
विंडोज़ पर निर्देशिका अस्तित्व की जाँच के लिए पॉवरशेल स्क्रिप्ट
Windows परिवेश के लिए PowerShell का उपयोग करने वाली स्क्रिप्ट
# This PowerShell script checks if a directory exists
$directory = "C:\path\to\directory"
if (Test-Path -Path $directory -PathType Container) {
Write-Output "Directory exists."
} else {
Write-Output "Directory does not exist."
}
बैश स्क्रिप्ट में निर्देशिका अस्तित्व की जाँच के लिए उन्नत तकनीकें
जबकि बुनियादी निर्देशिका अस्तित्व की जाँच आवश्यक है, ऐसी उन्नत तकनीकें हैं जो आपकी बैश स्क्रिप्ट की मजबूती को और बढ़ा सकती हैं। ऐसी ही एक विधि निर्देशिका अनुमतियों की जांच करना है। का उपयोग -r, -w, और -x के साथ संयोजन में झंडे if कथन, आप सत्यापित कर सकते हैं कि कोई निर्देशिका क्रमशः पढ़ने योग्य, लिखने योग्य और निष्पादन योग्य है या नहीं। यह सुनिश्चित करता है कि न केवल निर्देशिका मौजूद है, बल्कि आपकी स्क्रिप्ट के पास आवश्यक संचालन करने के लिए आवश्यक अनुमतियां भी हैं।
एक अन्य उन्नत तकनीक में निर्देशिका जांच तर्क को समाहित करने के लिए फ़ंक्शंस का उपयोग शामिल है। पुन: प्रयोज्य फ़ंक्शन बनाकर, आप अपनी स्क्रिप्ट को सुव्यवस्थित कर सकते हैं और दोहराए जाने वाले कोड से बच सकते हैं। उदाहरण के लिए, एक फ़ंक्शन नाम check_directory किसी निर्देशिका पथ को एक तर्क के रूप में स्वीकार करने और निर्देशिका के अस्तित्व और अनुमतियों के आधार पर एक स्थिति कोड वापस करने के लिए परिभाषित किया जा सकता है। यह मॉड्यूलर दृष्टिकोण आपकी स्क्रिप्ट को अधिक रखरखाव योग्य और पढ़ने में आसान बनाता है, खासकर जब जटिल कार्यों से निपटते समय कई निर्देशिका जांच की आवश्यकता होती है।
बैश स्क्रिप्ट में निर्देशिका अस्तित्व जांच के बारे में अक्सर पूछे जाने वाले प्रश्न
- मैं कैसे जांचूं कि कोई निर्देशिका बैश में लिखने योग्य है या नहीं?
- उपयोग -w एक के भीतर झंडा if यह जाँचने के लिए कि क्या कोई निर्देशिका लिखने योग्य है, कथन: if [ -w "$DIRECTORY" ]; then
- क्या मैं एक ही स्क्रिप्ट में अनेक निर्देशिकाएँ जाँच सकता हूँ?
- हां, आप इसका उपयोग करके निर्देशिकाओं की सूची में लूप कर सकते हैं for लूप करें और प्रत्येक को व्यक्तिगत रूप से जांचें।
- यदि कोई निर्देशिका मौजूद नहीं है तो मैं त्रुटियों को कैसे संभालूँ?
- उपयोग exit यदि निर्देशिका मौजूद नहीं है तो स्क्रिप्ट को समाप्त करने के लिए एक गैर-शून्य स्थिति कोड के साथ कमांड।
- क्या मैं निर्देशिका जाँच के परिणाम लॉग कर सकता हूँ?
- हाँ, आप इसका उपयोग कर सकते हैं tee आउटपुट को कंसोल पर प्रदर्शित करते हुए फ़ाइल में लॉग करने का आदेश।
- क्या निर्देशिका अनुमतियों की जांच करना भी संभव है?
- हाँ, आप इसका उपयोग कर सकते हैं -r, -w, और -x क्रमशः पढ़ने, लिखने और निष्पादित करने की अनुमतियों की जाँच करने के लिए झंडे।
- मैं अपनी स्क्रिप्ट को विभिन्न प्रणालियों में पोर्टेबल कैसे बनाऊं?
- क्रॉस-प्लेटफ़ॉर्म संगतता के लिए पायथन का उपयोग करने पर विचार करें, क्योंकि यह बिना किसी संशोधन के कई ऑपरेटिंग सिस्टम पर चल सकता है।
- यदि निर्देशिका मौजूद नहीं है तो मुझे उसे बनाने की आवश्यकता हो तो क्या होगा?
- उपयोग mkdir एक के भीतर आदेश else यदि निर्देशिका मौजूद नहीं है तो उसे बनाने के लिए कथन।
- मैं निर्देशिका अस्तित्व की जांच करने के लिए किसी फ़ंक्शन का उपयोग कैसे कर सकता हूं?
- जैसे किसी फ़ंक्शन को परिभाषित करें check_directory जो एक निर्देशिका पथ को एक तर्क के रूप में स्वीकार करता है और उसके अस्तित्व और अनुमतियों के आधार पर एक स्थिति कोड लौटाता है।
बैश स्क्रिप्ट में निर्देशिका अस्तित्व की जाँच के लिए उन्नत तकनीकें
जबकि बुनियादी निर्देशिका अस्तित्व की जाँच आवश्यक है, ऐसी उन्नत तकनीकें हैं जो आपकी बैश स्क्रिप्ट की मजबूती को और बढ़ा सकती हैं। ऐसी ही एक विधि निर्देशिका अनुमतियों की जांच करना है। का उपयोग -r, -w, और -x के साथ संयोजन में झंडे if कथन, आप सत्यापित कर सकते हैं कि कोई निर्देशिका क्रमशः पढ़ने योग्य, लिखने योग्य और निष्पादन योग्य है या नहीं। यह सुनिश्चित करता है कि न केवल निर्देशिका मौजूद है, बल्कि आपकी स्क्रिप्ट के पास आवश्यक संचालन करने के लिए आवश्यक अनुमतियां भी हैं।
एक अन्य उन्नत तकनीक में निर्देशिका जांच तर्क को समाहित करने के लिए फ़ंक्शंस का उपयोग शामिल है। पुन: प्रयोज्य फ़ंक्शन बनाकर, आप अपनी स्क्रिप्ट को सुव्यवस्थित कर सकते हैं और दोहराए जाने वाले कोड से बच सकते हैं। उदाहरण के लिए, एक फ़ंक्शन नाम check_directory किसी निर्देशिका पथ को एक तर्क के रूप में स्वीकार करने और निर्देशिका के अस्तित्व और अनुमतियों के आधार पर एक स्थिति कोड वापस करने के लिए परिभाषित किया जा सकता है। यह मॉड्यूलर दृष्टिकोण आपकी स्क्रिप्ट को अधिक रखरखाव योग्य और पढ़ने में आसान बनाता है, खासकर जब जटिल कार्यों से निपटते समय कई निर्देशिका जांच की आवश्यकता होती है।
निर्देशिका अस्तित्व जांच को बैश स्क्रिप्ट में लपेटना
बैश स्क्रिप्ट में निर्देशिका का अस्तित्व सुनिश्चित करना एक मौलिक कार्य है जो कई संभावित त्रुटियों को रोक सकता है। बुनियादी आदेशों या अनुमति जांच और फ़ंक्शन जैसी अधिक उन्नत तकनीकों का उपयोग करके, आप मजबूत और रखरखाव योग्य स्क्रिप्ट बना सकते हैं। इसके अतिरिक्त, पायथन और पावरशेल जैसे क्रॉस-प्लेटफ़ॉर्म टूल का लाभ उठाने से आपकी स्क्रिप्ट बहुमुखी और विभिन्न वातावरणों के अनुकूल बन सकती है। ये प्रथाएं कुशल स्वचालन और प्रबंधन स्क्रिप्ट बनाने में मदद करती हैं जो विश्वसनीय और डीबग करने में आसान होती हैं।