एक मार्ग में // क्या मतलब है?


9

मैं अपने टर्मिनल में काम कर रहा था, जब मैंने cdरूट ( /) के दौरान गलत वर्तनी की । गलती से, मैंने टाइप किया //और मुझे टर्मिनल मिला:

root@weblocalhost://#

जब मैं टाइप करता हूं pwd, तो मुझे प्रतिक्रिया मिलती है //लेकिन जब मैं टाइप करता हूं तो मुझे निर्देशिका के ls -sसमान सूची मिलती है /

जब आप 2 से अधिक टाइप करते हैं, ///तो आपको मिलता है:

root@weblocalhost:/#

हमेशा 1 /को छोड़कर 2। क्या कोई अंतर है और इसके //लिए क्या है ?

जवाबों:


8

/ के बराबर है //

से POSIX विनिर्देशन (जोर जोड़ा):

3.267 पथनाम

एक स्ट्रिंग जो एक फ़ाइल की पहचान करने के लिए उपयोग की जाती है। POSIX.1-2008 के संदर्भ में, एक पाथनेम {PATH_MAX} बाइट्स तक सीमित हो सकता है, जिसमें शून्य बाइट को समाप्त करना भी शामिल है। इसमें वैकल्पिक शुरुआत <slash> वर्ण हैं, इसके बाद <slash> वर्णों द्वारा अलग शून्य या अधिक फ़ाइल नाम हैं । एक पाथनाम में वैकल्पिक रूप से एक या अधिक अनुगामी <slash>अक्षर हो सकते हैं। क्रमिक रूप से एकाधिक <slash>वर्णों को एक जैसा माना जाता है <slash>, केवल दो प्रमुख <slash>पात्रों के मामले को छोड़कर ।

और :

4.12 पथनाम संकल्प

...
एक पथनाम एक एकल से मिलकर <slash>प्रक्रिया की मूल निर्देशिका का समाधान करेगा। एक अशक्त मार्गनाम सफलतापूर्वक हल नहीं किया जाएगा। यदि एक पथनाम दो क्रमिक <slash>वर्णों के साथ शुरू होता है , तो प्रमुख <slash>पात्रों का अनुसरण करने वाला पहला घटक कार्यान्वयन-परिभाषित तरीके से व्याख्या किया जा सकता है, हालांकि दो से अधिक प्रमुख <slash>पात्रों को एक ही <slash> चरित्र माना जाएगा ।

अपवादों (साइबरविन और निर्देशिका) की अच्छी चर्चा के लिए देखें: लिनक्स लगातार कई पथ विभाजकों (/ home //// उपयोगकर्ता नाम /// फ़ाइल) को कैसे संभालता है?


4

आप एक निर्देशिका में कई स्लैश जोड़ सकते हैं और यह कुछ भी नहीं बदलेगा।

उदाहरण के लिए ये तीनों आदेश समान हैं:
cd /home
cd /home/
cd /home//

इनमें से किसी के बाद मेरी वर्तमान वर्किंग डायरेक्टरी / होम (चेक के साथ pwd) सेट है ।

मुझे लगता है कि आपके पास कुछ स्मार्ट करने के लिए आपका संकेत है और आप अप्रत्याशित व्यवहार में भाग गए हैं। जब आप मिलते हैं तो क्या मिलता है echo $PS1?

Https://unix.stackexchange.com/ पर एक टिप्पणी के लिए लिंक जो इसे समझा सकता है।


OSX पर बाश में मेरा PS1 "\ h: \ W \ u \ $" है और मुझे यह अजीब व्यवहार भी मिलता है। / / /// और //// और ///// सभी / के रूप में दिखाते हैं, लेकिन दो अग्रेषित स्लैश के विशेष मामले में दो फॉरवर्ड स्लैश के रूप में दिखाई देते हैं।
स्पिरिट

मुझे Ubuntu 12.10 में <b> h </ b> ost, <b> w </ b> orking dir) पर \ u @ \ h: \ w (<b> u </ b> सेर मिला, लेकिन मैं विफल रहा समस्या को पुन: पेश करें।
हेन्स

किसी भी मामले में pwd की जाँच करते समय मुझे हमेशा // नहीं मिलता है। इको $ PS1 के लिए: मुझे मिलता है: \ [\ e] 0; \ u @ \ h: \ w \ a \] $ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w $ $
दिमित्रिस थियोडोरिडिस

मैं सिर्फ अपने PS1 को मैन्युअल रूप से सेट करता हूं और मैं इसे दो स्लैश के साथ पुन: पेश नहीं कर सकता । अजीब। 1, 3 या 4 के साथ नहीं। केवल 2 के साथ। मुझे यह समझाने के लिए नुकसान हो रहा है।
हेन्नेस

हो सकता है कि यह टिप्पणी unix.stackexchange का उत्तर हो: मेरा मानना ​​है कि Windows POSIX कंपाउंड एपीआई भी // रिमोट / ... को UNC पथ \\ Remote \ ... प्रारूप के समान ही
हेन्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.