डॉट डॉट (..) क्या है? सहानुभूति के साथ इसका व्यवहार अलग क्यों है?


15

मैं ..(डबल डॉट) की प्रकृति को समझने की कोशिश कर रहा हूं । यह इस बात पर निर्भर करता है कि आप इसे कैसे एक्सेस करते हैं, इस पर निर्भर करता है।

उदाहरण:-

    /outer/
        middle/
            inner/
        inner --> ./middle/inner/

अब, की /outer/middle/inner/..ओर जाता है /outer/middle/, लेकिन अगर मैं इसे प्रतीकात्मक लिंक के माध्यम से एक्सेस करता हूं, तो यह /outer/inner/..होता है /outer/। ऐसा लगता है कि यहां दो अलग-अलग ..हैं।

..वास्तव में क्या है ? प्रतीकात्मक लिंक? कड़ी कड़ी? या यह डायनामिक रूप से उत्पन्न पथ पर निर्भर करता है जब निर्देशिका एक्सेस की जाती है? या शायद प्रतीकात्मक कड़ियों की मेरी समझ गलत है।

संपादित करें:

अन्य संबंधित अवलोकन

    /outer/
        middle/
            file
            inner/
               f --> ./../file
        inner --> ./middle/inner/

अब अगर मैं /outer/inner/fइसके माध्यम से काम करने के लिए फ़ाइल तक पहुँचने का प्रयास करता हूँ। लेकिन ऐसा नहीं होना चाहिए क्योंकि /outer/inner/../fileयह किसी फाइल की ओर इशारा नहीं करता है। फाइल में है /outer/middle/inner/..। यह ऊपर व्यवहार में विरोधाभास लगता है !?


ध्यान दें कि प्रतीकात्मक लिंक शॉर्टकट नहीं हैं; वे संकेत की तरह अधिक कर रहे हैं।
wizzwizz4

जवाबों:


35

..मूल निर्देशिका के लिए एक कड़ी है जो निर्देशिका प्रविष्टि के भाग के रूप में बनाई गई है।

यदि आप ls -ailइन निर्देशिकाओं में से प्रत्येक में जारी करते हैं, तो आपको यह देखना चाहिए कि निम्नलिखित प्रविष्टियों में सभी समान inode(पहला क्षेत्र) और हार्ड लिंक गणना (तीसरा फ़ील्ड) है:

  • ..जब क्रियान्वित करने ls -ailमेंinner
  • .जब क्रियान्वित करने ls -ailमेंmiddle
  • middleजब क्रियान्वित करने ls -ailमेंouter

अब, / बाहरी / मध्य / आंतरिक / .. की ओर / बाहरी / मध्य / होता है, लेकिन अगर मैं इसे प्रतीकात्मक लिंक के माध्यम से एक्सेस करता हूं, तो / बाहरी / आंतरिक / .. / / बाहरी / की ओर जाता है। ऐसा लगता है कि दो अलग हैं .. यहाँ।

में एक ..प्रविष्टि है inner। यदि आपकी वर्तमान कार्यशील निर्देशिका है outer, तो आपको उसी परिणाम (निर्देशिका लिस्टिंग middle) से देखना चाहिए

  • ls -al inner/..
  • ls -al middle/inner/..

केवल स्थिति है जिसमें "तक पहुंच" ..सांकेतिक लिंक के माध्यम से अलग व्यवहार प्रदान करना चाहिए अगर आप है cdमें inner, प्रतीकात्मक लिंक का उपयोग इतना है कि अपने तार्किक कार्यशील निर्देशिका ( pwd -L) अपने से भिन्न भौतिक कार्यशील निर्देशिका ( pwd -P)। इस मामले में, cd ..आपको वापस outer नहीं ले जाएगा क्योंकि एक अलग ..प्रविष्टि है, लेकिन क्योंकि आपका शेल आपकी तार्किक कार्यशील निर्देशिका का ट्रैक रख रहा है और वास्तविक ..प्रविष्टि को संदर्भित करने के बजाय आपको एक स्तर पर पॉपअप कर रहा है inner

यह एक सुविधा है, उदाहरण के लिए bash, अंतर्निहित cdकमांड के भाग के रूप में । आप इसे वास्तविक ..प्रविष्टि के साथ बदलने के लिए कहकर इसे ओवरराइड कर सकते हैं

cd -P ..

जहां भौतिक पथ का उपयोग करने के लिए -Pनिर्देश cd( pwdऊपर के साथ )।


अहा, भ्रम की cdजाँच करने के लिए उपयोग करने से आता है । इसलिए, अगर मैं गलत हूं, तो मुझे सही करें, ..हमेशा भौतिक माता-पिता की ओर इशारा करता है, अगर कोई सिमलिंक उपयोग करता है तो ..इसे वास्तविक (भौतिक) माता-पिता को निर्देशित किया जाएगा। भ्रम केवल cdनिर्देशिका में आईएनजी के साथ खुश है ।
user98456

यह सेकंड के व्यवहार को भी समझाता है। आपका बहुत बहुत धन्यवाद।
user98456

3
@ Theophrastus, ls -laiआपको दिखाता है कि /..रूट डायरेक्टरी ही है, फिर से (उर्फ /. या /)। जब तक फ़ाइल सिस्टम टूट नहीं जाता है, तब तक कोई अन्य मामला नहीं होना चाहिए . == ..; यहां तक ​​कि जब एक एफएस कहीं लगाया जाता है तो उसे ..(अस्थायी) माता-पिता का अधिकार मिल जाता है (इसलिए वहां कुछ जादू चल रहा ..है, फाइल सिस्टम टेबल में सिर्फ एक सरल, स्थिर प्रविष्टि नहीं है)।
23
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.