कैसे बैश के साथ लिनक्स के तहत '-p' नामक एक निर्देशिका बनाने के लिए? [डुप्लिकेट]


22

बैश में, मैं नाम की निर्देशिका कैसे बना सकता हूं -p?

mkdir -pअनुत्तीर्ण होना।
mkdir "-p"अनुत्तीर्ण होना।
mkdir "\-p"अनुत्तीर्ण होना।
mkdir \-pअनुत्तीर्ण होना।


1
ध्यान दें कि ये सभी बैश के लिए पैरामीटर से बचने का प्रयास कर रहे हैं। चूँकि यह वही है जो बच नहीं पाया, इन सभी को छोड़कर तीसरा केवल स्ट्रिंग "-पी" को mkdir पर भेज देगा, जो इसे विकल्प के रूप में पार्स करेगा। विकल्प पार्सिंग बाश में नहीं किया जाता है, इसलिए इसके आसपास किसी भी तरह से (नीचे दिए गए उत्तरों में वर्णित) mkdir की विशेषता है (या बल्कि, बग की कमी)।
स्कोर_उंडर

11
यह पूछना चाहते हैं कि आप ऐसी निर्देशिका क्यों चाहते हैं। इसका उपयोग करना PITA होगा।
डैनियल आर हिक्स

3
@DanielRHicks: मैंने इस फोल्डर को गलती से बनाया था, लेकिन इसे हटाना नहीं जानता।
जिचो

4
तब, यह सवाल नहीं होना चाहिए कि "बैश के साथ लिनक्स के तहत '-p' नामक निर्देशिका को कैसे हटाया जाए"?
चेपनर

@chepner: क्योंकि वे वास्तव में समान समस्याएं हैं। मैंने निर्देशिका को हटाने की कोशिश की rmdirलेकिन उसी त्रुटियों के साथ विफल रहा।
जिचाओ

जवाबों:


40

अधिकांश उपयोगिताओं (सभी POSIX अनुपालन को छोड़कर ) testऔर "विकल्पों के अंत" विकल्प काecho समर्थन करते हैं , ताकि आप चला सकें: --

mkdir -- -p

यह विशेष रूप से उपयोगी है जब फ़ाइलों का नाम बदलना या निकालना जो संभावित रूप से डैश के साथ शुरू हो सकते हैं। स्क्रिप्ट में आपको हमेशा उपयोग करना चाहिए

mv -- "$filename"

सादे mv "$filename"या, इससे भी बदतर, एक अयोग्य फाइलनाम।


3
बहुत बढ़िया। यह जानना बहुत अच्छा है
ब्रूनो 9779

18

mkdir ./-p

ध्यान रखें कि अधिकांश अन्य कार्यक्रमों को उसी "ट्रिक" का उपयोग करने की आवश्यकता होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.