एंड्रॉयड

कैसे चेक करें कि कोई फाइल या डायरेक्टरी bash में मौजूद है या नहीं

आय,जाति,मूल विकलांग जन्म और मृत्यु प्रमाणपत्र असली हैं या नकली | net Par chade h ya nahi, abhi drkhe

आय,जाति,मूल विकलांग जन्म और मृत्यु प्रमाणपत्र असली हैं या नकली | net Par chade h ya nahi, abhi drkhe

विषयसूची:

Anonim

कई बार शेल स्क्रिप्ट लिखते समय, आप अपने आप को एक ऐसी स्थिति में पा सकते हैं, जहाँ आपको एक फ़ाइल मौजूद है या नहीं, इसके आधार पर कार्रवाई करने की आवश्यकता है।

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

परीक्षण कमांड निम्नलिखित सिंटैक्स रूपों में से एक लेता है:

test EXPRESSION]

अगर फ़ाइल मौजूद है तो जाँच करें

यह जाँचने पर कि क्या कोई फ़ाइल मौजूद है, सबसे अधिक इस्तेमाल किया जाने वाला FILE ऑपरेटर हैं -e और -f । पहला व्यक्ति यह जाँच करेगा कि क्या कोई फ़ाइल प्रकार की परवाह किए बिना मौजूद है, जबकि दूसरा केवल तभी वापस आएगा जब FILE एक नियमित फ़ाइल है (निर्देशिका या उपकरण नहीं)।

फ़ाइल के मौजूद होने या न होने की जाँच के लिए सबसे पठनीय विकल्प यह है कि यदि वह कथन के साथ संयोजन में परीक्षण कमांड का उपयोग करता है या नहीं। नीचे दिए गए स्निपेट में से कोई भी जांच करेगा कि क्या /etc/resolv.conf फ़ाइल मौजूद है:

FILE=/etc/resolv.conf if test -f "$FILE"; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if]; then echo "$FILE exist" fi

यदि आप फ़ाइल मौजूद है या नहीं, इसके आधार पर एक अलग क्रिया करना चाहते हैं, तो यदि / फिर निर्माण का उपयोग करें:

FILE=/etc/resolv.conf if; then echo "$FILE exist" else echo "$FILE does not exist" fi अपने नाम में व्हॉट्सएप युक्त फाइलों के साथ काम करने से बचने के लिए हमेशा दोहरे उद्धरण चिह्नों का उपयोग करें।

यदि आप बिना कथन के परीक्षण कमांड का उपयोग कर सकते हैं। && ऑपरेटर के बाद कमांड को तभी निष्पादित किया जाएगा जब परीक्षण कमांड की निकास स्थिति सही है, test -f /etc/resolv.conf && echo "$FILE exist"

&& echo "$FILE exist"

] && echo "$FILE exist"

&& { echo "$FILE exist"; cp "$FILE" /tmp/; }

&& विपरीत, कथन के बाद || परिचालक को केवल तभी निष्पादित किया जाएगा जब परीक्षण कमांड की निकास स्थिति false

&& echo "$FILE exist" || echo "$FILE does not exist"

जाँच करें कि क्या निर्देशिका मौजूद है

ऑपरेटर -d आपको यह जांचने की अनुमति देता है कि फ़ाइल निर्देशिका है या नहीं।

उदाहरण के लिए जाँच करें कि क्या /etc/docker निर्देशिका मौजूद है जिसका आप उपयोग करेंगे:

FILE=/etc/docker if; then echo "$FILE is a directory" fi

&& echo "$FILE is a directory"

आप डबल ब्रैकेट , 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0'])); भी उपयोग कर सकते हैं , 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));

जाँच करें कि क्या फ़ाइल मौजूद नहीं है

कई अन्य भाषाओं के समान, परीक्षण अभिव्यक्ति का उपयोग करके नकारा जा सकता है ! (विस्मयादिबोधक चिह्न) तार्किक नहीं ऑपरेटर:

FILE=/etc/docker if; then echo "$FILE does not exist" fi

ऊपर की तरह:

&& echo "$FILE does not exist"

जांचें कि क्या एकाधिक फ़ाइलें मौजूद हैं

इसके बजाय जटिल नेस्टेड का उपयोग करने के बजाय यदि आप / -और निर्माण का उपयोग कर सकते हैं -a (या && साथ) ; then echo "$FILE is a directory" fi

FILE=/etc/docker if; then echo "$FILE is a directory" fi

IF स्टेटमेंट का उपयोग किए बिना समकक्ष वेरिएंट:

&& echo "both files exist"

] && echo "both files exist"

फ़ाइल परीक्षण ऑपरेटरों

परीक्षण कमांड में निम्नलिखित फ़ाइल ऑपरेटर शामिल हैं जो आपको विशेष प्रकार की फ़ाइलों के लिए परीक्षण करने की अनुमति देते हैं:

  • -b FILE - सही है अगर फ़ाइल मौजूद है और एक ब्लॉक विशेष फ़ाइल है। -c FILE - सच है अगर फ़ाइल मौजूद है और एक विशेष चरित्र फ़ाइल है। -d FILE - सही है अगर फ़ाइल मौजूद है और एक निर्देशिका है। -e FILE - अगर फील मौजूद है और टाइप (नोड, डायरेक्टरी, सॉकेट आदि) की परवाह किए बिना सही है। -f FILE - सही है अगर फ़ाइल मौजूद है और एक नियमित फ़ाइल है (निर्देशिका या उपकरण नहीं)। -G FILE - सही है अगर फ़ाइल मौजूद है और कमांड चलाने वाले उपयोगकर्ता के समान समूह है। -h FILE - सही है अगर फ़ाइल मौजूद है और एक प्रतीकात्मक लिंक है। -g FILE - सही है अगर फ़ाइल मौजूद है और सेट-समूह-आईडी (sgid) ध्वज सेट है। -k FILE - सही है अगर फ़ाइल मौजूद है और एक चिपचिपा सा झंडा सेट है। -L FILE - सही है अगर फ़ाइल मौजूद है और एक प्रतीकात्मक लिंक है। -O FILE - सही है यदि फ़ाइल मौजूद है और कमांड चलाने वाले उपयोगकर्ता के स्वामित्व में है। -p FILE - सही है अगर फ़ाइल मौजूद है और एक पाइप है। -r FILE - सही है अगर फ़ाइल मौजूद है और पठनीय है। -S FILE - सही है यदि फ़ाइल मौजूद है और सॉकेट है। -s FILE - सही है अगर फ़ाइल मौजूद है और गैर-आकार है। -u FILE - सही है यदि मौजूद है और सेट-यूज़र-आईडी (suid) ध्वज सेट है। -w FILE - सही है अगर फ़ाइल मौजूद है और लेखन योग्य है। -x FILE - सही है अगर फ़ाइल मौजूद है और निष्पादन योग्य है।

निष्कर्ष

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

बश टर्मिनल