लिनक्स में एक कड़ी क्या है?


9

मैंने चारों ओर खोज की है और एक कड़ी और प्रतीकात्मक कड़ी (सॉफ्ट लिंक) के बीच अंतर को समझने की कोशिश कर रहा हूं।

मैंने पाया कि यह लिंक काफी उपयोगी है। लेकिन मैं अभी भी बहुत स्पष्ट नहीं हूं। मैं समझता हूं कि सॉफ्ट लिंक मूल फ़ाइल की कॉपी नहीं है, लेकिन हार्ड लिंक कॉपी है या नहीं?

जवाबों:


15

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

एक हार्ड लिंक एक ही स्थान के लिए दो पते रखने जैसा है। (बेशक यह वास्तव में भौतिक दुनिया में संभव नहीं है)। जब कोई चीज़ फ़ाइल नाम (पता) को पढ़ने की कोशिश करती है, तो उन्हें एक ही भौतिक फ़ाइल (स्थान) मिलती है।

तो एक हार्ड लिंक एक कॉपी नहीं है, क्योंकि फ़ाइल केवल एक बार संग्रहीत की जाती है (लेकिन कई नामों के साथ)। लेकिन यह एक कॉपी की तरह बहुत व्यवहार करता है, क्योंकि आप एक ही जानकारी को दो फ़ाइल नामों से एक्सेस कर सकते हैं।


एक बहुत अच्छा सादृश्य के लिए +1, जो मेरे लिए चीजों को सरलीकृत करेगा जब मैं इस के आसपास अपना सिर लाने की कोशिश कर रहा था।
जॉन गार्डनियर्स ने

1
+1, लेकिन दो छोटे विवरण: 1) वास्तविक दुनिया में एक ही स्थान के लिए कई पते होना संभव है, सिर्फ आम नहीं। 2) शायद एक कड़ी और कॉपी के बीच सबसे महत्वपूर्ण अंतर यह है कि, अगर आपके पास है /fooऔर /bar, हार्डलिंक होने पर /fooभी बदल जाएगा /bar(क्योंकि वे एक ही फ़ाइल के दो नाम हैं), लेकिन नहीं तो वे प्रतियां (क्योंकि वे दो पूरी तरह से स्वतंत्र फाइलें हैं)।
डेव शेरोहमान


3

जब आप एक कड़ी बनाते हैं, तो इसका मतलब है कि एक ही फाइल दो अलग-अलग जगहों पर दिखाई देती है। डिस्क पर डेटा ब्लॉक के एक सेट के लिए एक फ़ाइल वास्तव में केवल एक संदर्भ है, इसलिए एक हार्ड लिंक एक और संदर्भ जोड़ता है। फ़ाइलों को शायद ही कभी हटा दिया जाता है; संदर्भ अभी हटाए गए हैं इसलिए डेटा तक पहुंचना असंभव है। इसीलिए जब आप हार्ड लिंक के रूप में बनाई गई फ़ाइल को हटाते हैं, तो दूसरी मूल फ़ाइल रहती है, और इसके विपरीत।

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


2

* Nix सिस्टम में एक फाइल के दो भाग होते हैं। एक डेटा भाग और दूसरा इनोड है। इनकोड स्टोर मेटा (डेटा के लिए प्रासंगिक जानकारी जैसे एचडीडी जहां यह संग्रहीत है) जानकारी। कड़ी कड़ी बनाता है इस इनोड की एक सटीक प्रतिलिपि बनाता है। जबकि सिंपल लिंक एक इनोड बनाता है जो वास्तविक इनोड के इनकोड को इंगित करता है। इसलिए हार्डलिंक में इनोड डेटा टारगेट के समान है लेकिन सिम्फनी लिंक में अलग-अलग डेटा है। इसलिए लंबी कहानी को छोटा करने के लिए, सहानुभूति लिंक और हार्ड लिंक इनकोड डेटा की सामग्री से भिन्न होते हैं न कि फ़ाइल डेटा। यह मेरी सहानुभूति लिंक और हार्ड लिंक के बीच अंतर की समझ है। मेरे पास शुरू में यह समझने में कठिन समय था क्योंकि यह कुछ अधिक डेवलपर चीज़ है और मैं डेवलपर नहीं हूं। ओह जानकार, कृपया मुझे सही करें अगर मैं गलत हूँ।


3
* Nix में "डायरेक्टरी" फ़ाइल नामों और इनोड नंबरों की एक सूची है। हार्ड लिंक दो निर्देशिका प्रविष्टियाँ हैं जिनके पास एक ही इनोड संख्या है, और इसलिए इनकोड की प्रतियों के समान सटीक इनोड का उल्लेख है। एक सहिष्णुता एक निर्देशिका प्रविष्टि है जो किसी अन्य विशेष प्रविष्टि के लिए (किसी अन्य नाम से) प्रविष्टि का संकेत देती है। (ठीक है, यह वास्तव में एक आईनोड है, लेकिन यह
इनकोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.