क्यों था '।' वर्तमान निर्देशिका का प्रतिनिधित्व करने के लिए चुना गया है और मूल निर्देशिका के लिए '..' है?


32

इस प्रश्न को पढ़ने के बाद घर निर्देशिका का प्रतिनिधित्व करने के लिए '~' को क्यों चुना गया? , मेरे मन में अगला स्पष्ट सवाल था कि 'क्यों।' और '..' का उपयोग वर्तमान निर्देशिका और मूल निर्देशिका का प्रतिनिधित्व करने के लिए किया गया था।

यह अब इतना सहज लगता है, लेकिन कोई विशेष कारण?


जवाबों:


16

मुझे संदेह है कि आप टिल्ड प्रश्न के रूप में एक दिलचस्प जवाब खोजने जा रहे हैं!

मैं वहां नहीं था, लेकिन .. एक दीर्घवृत्त (...) की तरह है, जो संदर्भों की तरह समझ में आता है cd ../../../there। इसके अलावा, और विशेष रूप से टिल्ड मामले से तु पुराने टर्मिनल कीबोर्ड को देखते हुए, इस उद्देश्य के लिए कई पात्र नहीं हैं। आपको .या तो शिफ्ट करने की आवश्यकता नहीं है । यह एकदम सही है।

तथ्य यह है कि छिपी हुई फ़ाइलों के लिए एक डॉट प्रीफ़िक्स का उपयोग किया जाता है, एक और कारण हो सकता है। छिपी हुई फ़ाइलों को डिफ़ॉल्ट रूप से उपकरणों द्वारा सूचीबद्ध नहीं किया जाता है ls, जैसे कि न तो अनिवार्य रूप से अनावश्यक हैं .और ..। इस अर्थ में निरर्थक है कि अन्य फाइलों के साथ उन पर विचार करने का कोई मतलब नहीं है - वे निश्चित रूप से अन्यथा उपयोगी हैं।

जैसा कि यह पता चला है कि मैं इसे पीछे से कर सकता हूं ... विकिपीडिया से :

धारणा है कि फ़ाइल नाम से पहले '।' छिपा होना चाहिए यूनिक्स के शुरुआती दिनों में एक सॉफ्टवेयर बग का परिणाम है। जब विशेष '।' और '..' निर्देशिका प्रविष्टियाँ फाइलसिस्टम में जोड़ी गयीं, यह तय किया गया कि ls कमांड उन्हें प्रदर्शित नहीं करना चाहिए। हालाँकि, ls प्रोग्राम को गलती से किसी भी फाइल को बाहर करने के लिए लिखा गया था, जिसका नाम केवल 'फाइल' के बजाय '' 'से शुरू हुआ था।' या '..'।

यह जब प्रोग्रामिंग उपयोगी हो जाता है; चूंकि सिस्टम में शामिल है। और .. readdir()कमांड्स (और शेल ग्लब्स) टाइप करने के लिए , उनकी अनदेखी और छिपी हुई फाइलों को उसी तरह पूरा किया जा सकता है।

उस उपयोग मूल्य के बारे में एक अलग राय विकिपीडिया उद्धरण के लिए संदर्भ में है। बेशक, पूरी कहानी उदासीन हो सकती है ... यह मानना ​​थोड़ा मुश्किल है कि जैसे, डेनिस रिची ने सोचा कि सिर्फ पहले चरित्र के लिए जाँच ठीक होगी।

मैं लेखक के विज़ से असहमत हूँ, बेहतर होगा कि वे अपनी खुद की डायरेक्टरी में छिपी हुई कॉन्फिगरेशन फाइलों को रखें, न कि उन्हें एक सार्वभौमिक उपसर्ग दें। उपसर्ग बहुत अधिक लचीला है, जैसे इन-ट्री निर्देशों के लिए अनुमति देता है .gitignoreऔर .htaccess। गवाह है कि उस तरह की फाइलें भी एक साथ दिखाई देती हैं जब लेक्सोग्राफिक रूप से छांटा जाता है - इसलिए शायद यह सब के बाद उद्देश्य पर था


2

स्टैकओवरफ्लो पर ज्यादातर @Panos के रूप में एक ही जवाब :

संक्षेप में, यह से विकसित dऔर dd( directory और directory के directory) हाथ से उपयोगकर्ताओं द्वारा बनाए गई। dबन गया डॉट , और उन .और ..से पहले बनाए गए थे mkdirउपयोगिता (डायरेक्टरी को जोड़ने अब मात्र उपयोगकर्ता द्वारा अनुमति दी गई थी के बाद setuid) और बाद से mkdir सिस्टम कॉल।

केन थॉम्पसन (1989-09-06) के एक साक्षात्कार के अंश :

MSM : लेकिन उपयोगकर्ता के लिए यह निर्देशिकाओं के पदानुक्रम के समान होगा।

थॉम्पसन : नहीं, पहले एक डीजी था। वास्तव में, यह भी नहीं था। यदि आप UNIX फाइल सिस्टम को समझते हैं, तो यह .... आई-लिस्ट थी, जो सिस्टम की सभी फाइलों की एक परिभाषा है। और फिर उन फ़ाइलों में से कुछ, निर्देशिकाएं थीं जिनमें केवल नाम और आई-संख्या शामिल थी। वहाँ कुछ भी नहीं है कि यह एक पेड़ के लिए विवश है। तो यह वास्तव में नहीं था, पदानुक्रमित नहीं था।

MSM : मैं देख रहा हूँ।

थॉम्पसन : और हमने इसे एक पेड़ पर नहीं लगाया। हम विभिन्न टोपोलॉजी के साथ प्रयोग कर रहे थे। हमने जो काम किया वह ठोस में बदल रहा है और टोपोलॉजी को मजबूर कर रहा है कि वास्तव में वे टोपोलॉजी थे जो उस सिस्टम से कन्वेंशन द्वारा आए थे। ... हर बार जब हम एक निर्देशिका बनाते थे, तो सम्मेलन द्वारा हम इसे निर्देशिका - निर्देशिका नामक एक और निर्देशिका में डालते थे , जो कि डी.डी. इसका नाम dd था और यह कि सभी उपयोगकर्ता निर्देशिकाएँ और वास्तव में अधिकांश अन्य निर्देशिकाएँ, उपयोगकर्ता अपने स्वयं के निर्देशिका सिस्टम को बनाए रखते हैं, वापस dd को संकेत देते थे, और dd को डॉट-डॉट में छोटा कर दिया गया, और dd डायरेक्टरी-डायरेक्टरी के लिए था। यह वह जगह थी जहां आप इस स्पैगेटी कटोरे को बनाए रखने के लिए सिस्टम के अन्य सभी निर्देशिकाओं को प्राप्त कर सकते थे। तो, मेरा मतलब है कि विभिन्न रूपों में यह टफ है, जो कि डीजी कार्यान्वयन में कड़ाई से कन्वेंशन था बस निर्देशिकाओं और फाइलों के यादृच्छिक सेट को एक टाइपोलॉजी में मजबूर किया गया था जिसे हमने बनाए रखा था। जब हमने फ़ाइल सिस्टम जैसे प्रोग्राम और सामान चेक करना, स्पेगेटी बाउल डायरेक्टरीज़ को लॉक करना और असंतुष्ट चीज़ों का पता लगाना शुरू कर दिया, तो मेरा मतलब है कि आप किसी चीज़ को अनदेखा कर देंगे और उसे कभी वापस नहीं लेंगे, क्योंकि आप जानते हैं कि आप इसे खो देंगे। वे समस्याएँ दुर्गम के करीब हो गईं, और इसलिए अगले कार्यान्वयन में हमने एक टाइपोलॉजी को इससे भी मजबूत बना दिया।

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