कैसे जांचें कि कोई फ़ाइल बैश में मौजूद है या नहीं?

How Check If File Exists Bash



Linux में किसी फ़ाइल की उपलब्धता की जाँच करने के कई तरीके हैं। बैश स्क्रिप्टिंग में टेस्ट कमांड फ़ाइल के अस्तित्व की जाँच करने के प्रमुख तरीकों में से एक है।
इस गाइड का फोकस बैश स्क्रिप्टिंग के माध्यम से आपके सिस्टम में एक फाइल के अस्तित्व पर चर्चा करना है:

बैश स्क्रिप्टिंग का उपयोग करके फ़ाइल अस्तित्व की जाँच कैसे करें:

1) टर्मिनल में फ़ाइल का नाम दर्ज करके:







सबसे पहले, हमें एक बैश स्क्रिप्ट फ़ाइल बनाने की आवश्यकता है, नीचे दिए गए कमांड का उपयोग करें:



$स्पर्शtestfile.sh

मेरे द्वारा बनाई गई फ़ाइल का नाम testfile.sh है, .sh एक्सटेंशन शेल स्क्रिप्ट फ़ाइल को इंगित करता है:







किसी भी टेक्स्ट एडिटर में testfile.sh खोलें। फिर स्क्रिप्ट लिखें, इसे सेव दबाकर सेव करें।

एक तरीका यह है कि टर्मिनल में उपयोगकर्ता से फ़ाइल नाम पूछकर फ़ाइल ढूंढी जाए।



उपयोग -एफ फ़ाइल के अस्तित्व की जाँच करने के लिए।

नीचे दी गई स्क्रिप्ट लिखें:

#!/बिन/बैश
फेंक दिया 'अपना फ़ाइल नाम दर्ज करें'
पढ़नानई फ़ाइल1
अगर [ -एफ '$newfile1' ]
फिर
फेंक दिया 'फाइल मिल गई'
अन्यथा
फेंक दिया 'फाइल नहीं मिली'
होना

टर्मिनल पर वापस जाएं और आउटपुट प्रिंट करने के लिए फ़ाइल चलाएँ:

./फ़ाइल नाम.sh

अनुमति अस्वीकृत संदेश टर्मिनल में प्रदर्शित किया जाएगा।

नीचे दिए गए आदेश को निष्पादित करके इसे निष्पादन योग्य बनाएं:

$चामोद+ एक्स टेस्टफाइल.श

फ़ाइल का नाम दर्ज करें, और यह आउटपुट प्रिंट करेगा:

2) स्क्रिप्ट लिखते समय फ़ाइल का नाम दर्ज करके:
स्क्रिप्ट लिखते समय फ़ाइल का नाम देकर फ़ाइल खोजने का दूसरा तरीका। फ़ाइल की उपलब्धता की जाँच करने के लिए हमारे पास तीन तरीके हैं। पहला परीक्षण कमांड का उपयोग कर रहा है, दूसरा वर्ग कोष्ठक में अभिव्यक्ति के साथ if का उपयोग कर रहा है, और तीसरा भी अगर लेकिन डबल वर्ग कोष्ठक के साथ है जैसा कि नीचे बताया गया है:

  1. परीक्षण अभिव्यक्ति।
  2. अगर [अभिव्यक्ति]
  3. अगर [[अभिव्यक्ति]]

आइए इसे उदाहरणों से समझते हैं:

1) परीक्षण [अभिव्यक्ति]
दी गई स्क्रिप्ट को कॉपी करें और इसे संपादक में पेस्ट करें, इसे सेव करें:

#!/बिन/बैश
फ़ाइल का नाम=फ़ाइल1
अगर परीक्षण -एफ '$फ़ाइलनाम';
फिर
फेंक दिया '$फ़ाइलपाया है।'
अन्यथा
फेंक दिया '$फ़ाइलनहीं मिला'
होना

आउटपुट:

चूंकि मेरी निर्देशिका में ऐसी कोई फ़ाइल नहीं है, इसलिए कोड प्रदर्शित करता है कि फ़ाइल नहीं मिली संदेश।

2) अगर [अभिव्यक्ति]

फ़ाइल मौजूद है या नहीं यह जाँचने के लिए निम्न स्क्रिप्ट की प्रतिलिपि बनाएँ:

#!/बिन/बैश
फ़ाइल का नाम=myfile.txt
अगर [ -एफ '$फ़ाइलनाम' ];
फिर
फेंक दिया '$फ़ाइलनामपाया है।'
अन्यथा
फेंक दिया 'फ़ाइल नाम नहीं मिला'
होना

आउटपुट:

3) यदि [[अभिव्यक्ति ]]

नीचे लिखी गई स्क्रिप्ट को कॉपी करें और टर्मिनल पर पेस्ट करें:

#!/बिन/बैश
फ़ाइल का नाम=टेस्टफाइल
अगर [[ -एफ '$फ़ाइलनाम' ]];
फिर
फेंक दिया '$फ़ाइलनामपाया है।'
अन्यथा
फेंक दिया '$फ़ाइलनामनहीं मिला'
होना

आउटपुट:

निर्देशिका की जाँच करने के लिए:

3) स्क्रिप्ट लिखते समय निर्देशिका का नाम दर्ज करके

उपयोग -डी निर्देशिका के अस्तित्व की जाँच करने के लिए ध्वज।

नीचे दी गई स्क्रिप्ट में, dir11 वेरिएबल है जिसमें आप फ़ाइल को स्टोर करते हैं जिसे आप ढूंढ रहे हैं; इस उदाहरण में, मैं निर्देशिका नाम जांचना चाहता हूं testDir मौजूद है या नहीं।

#!/बिन/बैश
डीआईआर11=टेस्टडिर
अगर [ -डी '$dir11' ]
फिर
फेंक दिया 'निर्देशिका मिली है'
अन्यथा
फेंक दिया 'निर्देशिका नहीं मिली'
होना

आउटपुट:

2) टर्मिनल में फ़ाइल का नाम दर्ज करके:
जब आप यह जांचने के लिए टर्मिनल में कमांड चलाते हैं कि निर्देशिका मौजूद है या नहीं, तो आपको उस निर्देशिका का नाम दर्ज करना होगा जिसे आप खोज रहे हैं:

#!/बिन/बैश
फेंक दिया 'अपनी निर्देशिका का नाम टाइप करें।'
पढ़नाडिर1
अगर [ -डी 'डीआईआर1' ]
फिर
फेंक दिया 'निर्देशिका मिल गई है'
अन्यथा
फेंक दिया 'निर्देशिका नहीं मिली'
होना

आउटपुट:

if कथन का उपयोग किए बिना फ़ाइल की जाँच करना:

यदि कथन के बिना परीक्षण आदेश निष्पादित किया जा सकता है। फ़ाइल मौजूद होने पर यह केवल आउटपुट प्रदर्शित करेगा; अन्यथा, कोई आउटपुट नहीं होगा:

स्क्रिप्ट लिखें:

  1. परीक्षण -एफmyfile.txt&& फेंक दिया 'फाइल मिल गई'

  2. [ -एफmyfile.txt] && फेंक दिया '$फ़ाइलमिल गया है।'

  3. [[ -एफmyfile.txt]] && फेंक दिया '$फ़ाइलमिल गया है।'

आउटपुट:

if कथन का उपयोग किए बिना निर्देशिका की जाँच करना:

निर्देशिका मौजूद है या नहीं, यह जांचने के लिए नीचे दिए गए कथनों का उपयोग करें:

  1. [[ -डीटेस्टडिर]] && फेंक दिया 'निर्देशिका मौजूद है'

  2. 2) [ -डीटेस्टडिर] && फेंक दिया 'निर्देशिका मौजूद है'

आउटपुट:

एकाधिक फाइलों/निर्देशिकाओं की जांच करना:

1) अगर बयानों के साथ कई फाइलों की जांच करना:
नेस्टेड if/else कथनों का उपयोग करने के बजाय विभिन्न फाइलों के अस्तित्व की जांच करने के लिए -a ध्वज का उपयोग करें:

#!/बिन/बैश
अगर [ -एफnew_file.txt-प्रति -एफnewfile.txt];फिर
फेंक दिया 'दोनों फाइलें मौजूद हैं।'
होना

एक और तरीका है:

#!/बिन/बैश
अगर [[ -एफnew_file.txt&& -एफnewfile.txt]];फिर
फेंक दिया 'दोनों फाइलें मौजूद हैं।'
होना

आउटपुट:

2) if स्टेटमेंट का उपयोग किए बिना कई फाइलों की जाँच करना:
एक साथ कई फाइलों की जांच करने के लिए निम्नलिखित कथन का प्रयोग करें 1 यदि उपयोग किए बिना:

  1. [[ -एफnew_file.txt&& -एफnewfile.txt]] && फेंक दियादोनों फाइलें बाहर निकलती हैं।

  2. [[ -एफnew_file.txt&& -एफnewfile.txt]] && फेंक दियादोनों फाइलें बाहर निकलती हैं।

आउटपुट:

निष्कर्ष:

इस लेख में दिखाया गया है कि किसी फ़ाइल या निर्देशिका की जाँच के लिए बैश स्क्रिप्टिंग का उपयोग कैसे करें। फ़ाइल की उपलब्धता की जाँच करने के लिए हमने विभिन्न विकल्पों का उपयोग किया। सबसे पहले, हम विभिन्न झंडों के साथ परीक्षण कमांड का उपयोग करते हैं। फिर हमने फ़ाइल या निर्देशिका की जाँच करने के लिए if, Nested if-else, और if कथनों के बिना उपयोग सीखा। हमने यह भी देखा कि एकाधिक फाइलों या निर्देशिकाओं की जांच कैसे करें।