एक माइनस (उर्फ डैश) अकेले एक विकल्प नहीं है, लेकिन एक ऑपरेंड (यानी एक तर्क जो एक विकल्प नहीं है)। इस वजह से, --
इसे लगाने से पहले कोई प्रभाव नहीं पड़ता है। डैश एक ऑपरेंड है cd -
और अभी भी इसमें एक ऑपरेंड है cd -- -
। अन्य मानक उपयोगिताओं की तरह, cd
एक ऑपरेंड को एक ऑपरेंड के रूप में मानते हैं चाहे --
वह इससे पहले हो।
cd
आदेश संकार्य करने के लिए एक विशेष अर्थ प्रदान करती है -
। और कुछ भी करने के लिए स्विच करने के लिए एक निर्देशिका है। cd -- -a
निर्देशिका में स्विच किया जाता है -a
, क्योंकि -a
एक ऑपरेंड के रूप में विशेष नहीं है और इसे विकल्प के रूप में व्यवहार करने से --
रोकता cd
है। यह -
अकेले के लिए काम नहीं करता है जो एक विकल्प नहीं है।
चारों ओर उद्धरण डाल -
मदद करने के लिए नहीं जा रहा है, क्योंकि वह अंततः ओपेरा को -
वैसे भी पारित करेगा ।
इसलिए आपका एकमात्र सहारा उसी विचार को व्यक्त करने का एक और तरीका ढूंढना है, उसी निर्देशिका का दूसरा नाम। सौभाग्य से, वहाँ एक आसान है: यदि आप ./
एक रिश्तेदार फ़ाइल नाम से पहले जोड़ते हैं , तो यह अभी भी उसी फ़ाइल का मतलब है। इससे ./
फर्क पड़ता है जो हमारे मामले में अप्रासंगिक है: CDPATH
जब निर्देशिका का नाम /
, ./
या के साथ शुरू होता है , तो परामर्श नहीं किया जाता है ../
। इस प्रकार:
cd ./-
एक अन्य तरीका, चूंकि -
एक निर्देशिका है, /
इसके बाद जोड़ना है । /
फ़ाइल नाम के अंत में जोड़ना यह सुनिश्चित करता है कि फ़ाइल को एक निर्देशिका के रूप में माना जाता है (विशेष रूप से, यह कमांड निर्देशिका पर ही काम करेगा और सिम्लिंक पर नहीं अगर फ़ाइल निर्देशिका का प्रतीकात्मक लिंक है), लेकिन अन्यथा बनाता है कोई फर्क नहीं। इस प्रकार:
cd -- -/
लेखन -/
को पूरा करने के तरीके के अनुसार कोड का सुझाव दिया जाता है, लेकिन बैश में यह वास्तव में --
इससे पहले ही काम करता है, बैश के लिए कोई विशेष मामला नहीं है cd -/
(zsh do)।