सवाल इस नाम "-2" (हाइफ़न से शुरू) के साथ निर्देशिका में सीडी कैसे करें?


मेरे पास नाम की एक निर्देशिका है:

-2

मैं इसमें सीडी करना चाहता हूं लेकिन सीडी शिकायत करता है:

bash: cd: -2: invalid option

बिना किसी सफलता के, मैंने कोशिश की है:

cd "-2"
cd '-2'
cd \-2

कोई भी समाधान?

संपादित करें: सर्वर पर उपलब्ध एमसी, आदि जैसे कोई फ़ाइल ब्राउज़र नहीं।


149
2018-01-03 20:29


मूल


सुपरसियर पर संबंधित प्रश्न: superuser.com/questions/361573/... - yms


जवाब:


कम से कम दो तरीके:

  1. उपयोग -- तर्क।

    cd -- -2
    

    यह जीएनयू टूल्स के लिए आम तौर पर एक सम्मेलन का उपयोग करता है जो बाद में दिखाई देने वाली किसी भी चीज़ का इलाज नहीं करना है -- कमांड लाइन विकल्प के रूप में।

    के तौर पर टिप्पणीकार ध्यान दिया, यह सम्मेलन भी है POSIX मानक में परिभाषित किया गया है:

    डिफ़ॉल्ट व्यवहार: जब यह खंड "कोई नहीं" के रूप में सूचीबद्ध होता है, तो इसका मतलब है कि कार्यान्वयन को किसी भी विकल्प का समर्थन करने की आवश्यकता नहीं है। मानक उपयोगिताओं जो विकल्पों को स्वीकार नहीं करते हैं, लेकिन यह ऑपरेटरों को स्वीकार करते हैं, पहचान लेंगे "--" त्यागने वाले पहले तर्क के रूप में।

    पहचानने की आवश्यकता "--" ऐसा इसलिए है क्योंकि अनुरूप अनुप्रयोगों को अपने ऑपरेटरों को किसी भी मनमानी विकल्पों से ढालने का एक तरीका चाहिए जो कार्यान्वयन एक विस्तार के रूप में प्रदान कर सकता है। उदाहरण के लिए, यदि मानक उपयोगिता foo को कोई विकल्प नहीं लेने के रूप में सूचीबद्ध किया गया है, और इसे एक प्रमुख हाइफ़न के साथ पथनाम देने के लिए आवश्यक एप्लिकेशन है, तो यह सुरक्षित रूप से ऐसा कर सकता है:

    foo -- -myfile
    

    और किसी भी समस्या से बचें -m एक विस्तार के रूप में इस्तेमाल किया।

    साथ ही साथ:

    दिशानिर्देश 10:
      बहस -- विकल्पों के अंत को इंगित करने वाले एक डेलीमीटर के रूप में स्वीकार किया जाना चाहिए। किसी भी निम्नलिखित तर्क को ऑपरेंड के रूप में माना जाना चाहिए, भले ही वे शुरू हों '-' चरित्र। -- तर्क को एक विकल्प या ऑपरेंड के रूप में उपयोग नहीं किया जाना चाहिए।

  2. पथ को स्पष्ट रूप से निर्दिष्ट करें:

    cd ./-2
    

    यह स्पष्ट रूप से वर्तमान निर्देशिका नामकरण पथ निर्दिष्ट करता है (.) शुरुआती बिंदु के रूप में।

    cd $(pwd)/-2
    cd /absolute/path/to/-2
    

    ये उपरोक्त पर भिन्नताएं हैं। ऐसी विविधताएं संभव हो सकती हैं; मैं इसे सभी को खोजने के लिए पाठक को एक अभ्यास के रूप में छोड़ दूंगा।


250
2018-01-03 20:32



यह सिर्फ जीएनयू नहीं है, यह पॉज़िक्स मानक का हिस्सा है। देख 1.11 उपयोगिता विवरण डिफ़ॉल्ट तथा 12.2 उपयोगिता सिंटेक्स दिशानिर्देश (दिशानिर्देश # 10)। वहाँ से cd पृष्ठ " cd उपयोगिता अनुरूप होगी ... खंड 12.2 "। - Dietrich Epp
अब मैं सिर्फ एक निर्देशिका के लिए सीडी कैसे सीडी पर उत्सुक हूँ -! - sergiol
@ sergiol वही तरीका। - Michael Hampton♦
@ArtB: नहीं। उद्धरण सिर्फ क्षेत्र विभाजन को प्रभावित करता है। इसलिए "hello world" एक तर्क है लेकिन hello world दो है, और "-2" के समान है -2। - Dietrich Epp
@sergiol: या तो cd -- -- या cd ./-- कार्य करना चाहिए। - Keith Thompson


यह काम करना चाहिए:

cd -- -2 

- मतलब कोई और विकल्प नहीं है


48
2018-01-03 20:33





यदि वर्तमान निर्देशिका में '-2' है तो यह काम करेगा।

    cd ./-2

आप टाइप करके स्वत: पूर्ण कर सकते हैं - और टैब दबाकर।


25
2018-01-04 06:19





सीडी /home/...../-2 भी काम करता है। पहुंचने के लिए पूरा रास्ता दें।


10
2018-01-04 02:46





बस पूरक के लिए, यदि आप इस निर्देशिका को हटाना / हटाना चाहते हैं तो आप निम्न आदेश का उपयोग कर सकते हैं:

rm -r -- -2

6
2018-01-04 14:14





मुझे पता है कि इस सवाल का जवाब पहले ही दिया जा चुका है। अगर किसी के पास मेरी तरह की स्थिति है, तो यह उनके लिए है:

मैंने एक जावा ऐप चलाया और यह एक निर्देशिका की तलाश में था <path>, मुझे ऐप चलाने से पहले उचित पथ से बदलना था। हालांकि, मैं ऐसा करना भूल गया। ऐप ने एक निर्देशिका बनाई जिसे <path>

मैने कोशिश कि cd <path> - मुझे त्रुटि दी "-बैश: अप्रत्याशित टोकन न्यूलाइन के पास वाक्यविन्यास त्रुटि" यहां सुझाव के आधार पर (मैं समझता हूं कि इसकी निर्देशिका के लिए शुरूआत - और नहीं <) मैंने कोशिश की cd -- <path>। हालांकि, मुझे एक ही त्रुटि मिली।

जब मैंने कोशिश की cd \<path>\ - यह काम किया!

पृष्ठभूमि की जानकारी:

एसटीडीआईएन और एसटीडीओयूटी को पुनर्निर्देशित करने के लिए प्रतीक "<" और ">" का उपयोग किया जाता है, इसलिए शैल को रीडायरेक्ट के रूप में व्याख्या करने के लिए उन्हें बचने की आवश्यकता होती है।


-1
2017-07-05 14:00