2010-05-30 19 views
5

मैं यह पता लगाने के लिए एक स्क्रिप्ट बनाने की कोशिश कर रहा हूं कि कोई निर्देशिका मौजूद है या नहीं, और यदि ऐसा नहीं है, तो इसे बनाने के लिए।शेल स्क्रिप्ट यह जांचने के लिए कि कोई निर्देशिका मौजूद है या नहीं?

मैं यह कैसे कर सकता हूं?

मैं कुछ खुदाई किया था और एक सुराग मिला:

test -d directory 

... true या false निर्देशिका मौजूद है या नहीं इस पर निर्भर वापस आ जाएगी।

लेकिन मैं इसे mkdir के साथ कैसे जोड़ूं?

+0

परीक्षण परेशान क्यों करें? बस "mkdir foo 2>/dev/null" करें। यदि निर्देशिका मौजूद है, तो mkdir विफल हो जाएगा और कोई नुकसान नहीं हुआ। –

उत्तर

9

mkdir -p $directory आपको जो चाहिए वह करना चाहिए। -p विकल्प कोई आवश्यक मूल निर्देशिका तैयार करेगा। यदि $directory निर्देशिका के रूप में पहले से मौजूद है, तो आदेश कुछ भी नहीं करता है, और सफल होता है। यदि $directory एक नियमित फ़ाइल है, तो यह छूटे रहेगा, और आदेश एक उचित त्रुटि संदेश के साथ विफल हो जाएगा।

mkdir को -p विकल्प के बिना, test ... || mkdir ... रणनीति असफल हो सकता है अगर $directory एक '/', और कुछ है कि पथ पहले से मौजूद नहीं की घटक है। test वैसे भी अनिवार्य है, क्योंकि mkdir आंतरिक रूप से एक ही परीक्षण करता है।

3
test ... || mkdir ... 
+0

आह ... बस सही! –

संबंधित मुद्दे

 संबंधित मुद्दे