परीक्षण करें कि कुछ दिए गए पथ पर मौजूद है -e
फ़ाइल परीक्षण ऑपरेटर का उपयोग।
print "$base_path exists!\n" if -e $base_path;
हालांकि, यह परीक्षण संभवतः आपके इरादे से व्यापक है। उपर्युक्त कोड आउटपुट उत्पन्न करेगा यदि उस पथ पर एक सादा फ़ाइल मौजूद है, लेकिन यह एक निर्देशिका, नामित पाइप, एक सिम्लिंक, या अधिक विदेशी संभावना के लिए भी आग लग जाएगी। विवरण के लिए See the documentation।
आपके प्रश्न में .TGZ
के विस्तार को देखते हुए, ऐसा लगता है कि आप विकल्पों की बजाय सादा फ़ाइल की अपेक्षा करते हैं। -f
फ़ाइल-परीक्षण ऑपरेटर पूछता है कि कोई पथ एक सादे फ़ाइल की ओर जाता है या नहीं।
print "$base_path is a plain file!\n" if -f $base_path;
perlfunc प्रलेखन Perl's file-test operators की लंबी सूची है कि आप व्यवहार में सामना करेंगे कई स्थितियों को शामिल किया गया शामिल हैं।
-r
फ़ाइल प्रभावी uid/gid द्वारा पठनीय है।
-w
फ़ाइल प्रभावी यूआईडी/ग्रिड द्वारा लिखने योग्य है।
-x
फ़ाइल प्रभावी uid/gid द्वारा निष्पादन योग्य है।
-o
फ़ाइल प्रभावी यूआईडी के स्वामित्व में है।
-R
फ़ाइल वास्तविक यूआईडी/ग्रिड द्वारा पठनीय है।
-W
फ़ाइल वास्तविक uid/gid द्वारा लिखने योग्य है।
-X
फ़ाइल वास्तविक uid/gid द्वारा निष्पादन योग्य है।
-O
फ़ाइल असली यूआईडी के स्वामित्व में है।
-e
फ़ाइल मौजूद है।
-z
फ़ाइल शून्य आकार (खाली है) है।
-s
फ़ाइल में nonzero आकार (बाइट्स में आकार का आकार) है।
-f
फ़ाइल एक सादे फ़ाइल है।
-d
फ़ाइल एक निर्देशिका है।
-l
फ़ाइल एक प्रतीकात्मक कड़ी (गलत सिमलिंक फाइल सिस्टम के द्वारा समर्थित नहीं कर रहे हैं) है।
-p
फ़ाइल एक नामित पाइप (फीफो), या filehandle एक पाइप है।
-S
फ़ाइल एक सॉकेट है।
-b
फ़ाइल एक ब्लॉक विशेष फ़ाइल है।
-c
फ़ाइल एक चरित्र विशेष फ़ाइल है।
-t
फ़ाइलहेडल को एक tty के लिए खोला गया है।
-u
फ़ाइल सेट सेट सेट है।
-g
फ़ाइल setgid बिट सेट है।
-k
फ़ाइल चिपचिपा बिट सेट है।
-T
फ़ाइल एक ASCII या UTF-8 पाठ फ़ाइल (अनुमानी अनुमान) है।
-B
फ़ाइल एक "बाइनरी" फ़ाइल (-T
के विपरीत) है।
-M
स्क्रिप्ट स्टार्ट टाइम माइनस फ़ाइल संशोधन समय, दिनों में।
-A
एक्सेस समय के लिए ही।
-C
inode परिवर्तन समय के लिए एक ही (यूनिक्स, अन्य प्लेटफार्मों के लिए अलग हो सकता है)
स्रोत
2010-04-08 15:10:27
हे बेकन, आपको देखकर अच्छा लगा। तो -एक सापेक्ष पथ के लिए भी काम करता है? मैंने सोचा कि यह केवल विशेष फ़ाइल के लिए काम किया है ... कूल धन्यवाद – superstar
@ सुपरस्टार हैलो फिर से! हां, '-e' सापेक्ष पथ के साथ काम करता है, लेकिन मुझे लगता है कि मैंने आपके प्रश्न को गलत समझा होगा। क्या आपके पास * myMock.TGZ' नाम की एक * निर्देशिका * है, और आप जानना चाहते हैं कि उस निर्देशिका में एक विशेष नाम वाली फ़ाइल है या नहीं? उदाहरणों को शामिल करने के लिए अपने प्रश्न को संपादित करके आपको बेहतर उत्तर देने में हमारी सहायता करें! –