NTFS हार्ड लिंक और डायरेक्टरी जंक्शनों में क्या अंतर है?


79

शीर्षक यह सब कहता है ... क्या अंतर है? मैं एक का उपयोग कब करूं और दूसरे का उपयोग कब करूं?

जोड़ा गया: ध्यान दें कि NTFS पर जंक्शन पॉइंट , हार्ड लिंक और सिम्बोलिक (सॉफ्ट) लिंक तीन अलग-अलग चीजें हैं।


2
Microsoft प्रलेखन के अनुसार, तीन अलग-अलग श्रेणियां हैं: हार्ड लिंक: msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx ; जंक्शन (सॉफ्ट-लिंक): msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx ; प्रतीकात्मक कड़ी: msdn.microsoft.com/en-us/library/aa363878%28VS.85%29.aspx
जोसिप ने

जवाबों:


33

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

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

(अतिरिक्त) हार्डलिंक तब उपयोगी होते हैं जब आप एक ही डेटा को इंगित करने, पढ़ने या लिखने के लिए अलग-अलग नाम चाहते हैं। वे अंतरिक्ष और उपरि बचाते हैं। हालांकि, वे क्लॉबर प्रोग्राम जो विभिन्न नामों को मानते हैं, अलग-अलग डेटा को इंगित करते हैं। उदाहरण के लिए, यदि आप डुप्लिकेट फ़ाइलों के संदर्भों को हार्डलिंक द्वारा एकल फ़ाइल में बदलते हैं, तो आपने अपने पास मौजूद किसी भी बैकअप को हटा दिया है! विंडोज़ ओएस एक प्रोग्राम है जो विभिन्न नामों को मानता है जो बिट्स के विभिन्न सेटों को इंगित करता है।

हार्डलिंक्स को एक ही भौतिक और तार्किक मात्रा पर होना चाहिए।

वे इसके लिए उपयोगी हैं:

  • पथ की लंबाई कम करने के बाद से Windows सिर्फ 256 वर्ण या तो समर्थन करता है।

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

जंक्शन पॉइंट गड़बड़ हैं और रेपर्स पॉइंट्स (जो मुझे समझ में नहीं आते हैं) का उपयोग करें। वे विभिन्न भौतिक या तार्किक संस्करणों को इंगित कर सकते हैं लेकिन उन्हें एक ही कंप्यूटर पर होना चाहिए। वे जाहिरा तौर पर निर्देशिकाओं के लिए सहानुभूति की तरह इस्तेमाल कर सकते हैं, एक ही गंतव्य के लिए एक दूसरे नाम की अनुमति देते हैं, लेकिन केवल एक मात्रा के बजाय एक एकल कंप्यूटर तक सीमित है।

पथ लंबाई कम करने, या हार्डकोड निर्देशिका नामों के साथ कई कार्यक्रमों के साथ काम को सरल बनाने के लिए उपयोगी है।

वही कैवियट, भी! कई कार्यक्रम अलग-अलग नाम = अलग-अलग फ़ाइलों को मानते हैं।

और फिर प्रतीकात्मक लिंक हैं (जो नेटवर्क में जा सकते हैं), शॉर्टकट और PIF और .....

खुद माइक्रोसॉफ्ट से भी कुछ जानकारी :

असल में, वे केवल उसी वॉल्यूम (डिस्क ड्राइव लेटर) के भीतर फाइलों के लिए हार्ड लिंक का उपयोग करने के लिए कह रहे हैं और जंक्शन केवल एक ही कंप्यूटर पर निर्देशिकाओं के लिए (वे विभिन्न स्थानीय संस्करणों में फैला सकते हैं)।


1
क्या प्रतीकात्मक लिंक हार्ड डिस्क (NTFS) स्तर पर काम करता है या यह विंडोज ऑपरेटिंग सिस्टम स्तर की अवधारणा पर है?
इस्माइल

48

त्वरित परिभाषाएँ:

प्रतीकात्मक लिंक: समान या अलग वॉल्यूम (ड्राइव अक्षर) पर एक फ़ाइल या निर्देशिका के लिए एक लिंक या यहां तक ​​कि एक दूरस्थ फ़ाइल या निर्देशिका (इसके मार्ग में UNC का उपयोग करके)।

हार्ड लिंक: केवल वॉल्यूम (ड्राइव अक्षर) पर एक फ़ाइल का लिंक। हर फाइल (फाइल का डेटा) में कम से कम 1 हार्ड लिंक (फाइल का नाम) होता है। सभी हार्ड लिंक को हटाने से फ़ाइल को प्रभावी ढंग से हटा दिया जाता है।

जंक्शन: एक ही या अलग वॉल्यूम (ड्राइव अक्षर) पर एक निर्देशिका के लिए एक लिंक लेकिन एक दूरस्थ निर्देशिका के लिए नहीं।


विवरण:

मान लें कि आप Windows Vista / 7 में NTFS वॉल्यूम के साथ काम कर रहे हैं, तो आप तीनों प्रकार के लिंक बनाने के लिए कमांड लाइन टूल का उपयोग कर सकते हैं MKLINK :

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is 
                a file symbolic link.

        /H      Creates a hard link instead of a symbolic link.

        /J      Creates a Directory Junction.

        Link    specifies the new symbolic link name.

        Target  specifies the path (relative or absolute) that 
                the new link refers to.

प्रतीकात्मक लिंक : एक प्रतीकात्मक लिंक एक फ़ाइल-सिस्टम ऑब्जेक्ट है जो किसी अन्य फ़ाइल सिस्टम ऑब्जेक्ट (जैसे: फ़ाइल / निर्देशिका) को इंगित करता है।

  • MKLINKप्रतीकात्मक लिंक बनाने के लिए इस्तेमाल किया जा सकता है। /Dपैरामीटर का उपयोग करना एक निर्देशिका प्रतीकात्मक लिंक बनाता है। MKLINK यह जाँच नहीं करता है कि लक्ष्य एक फाइल है या कोई निर्देशिका या भले ही लक्ष्य मौजूद हो! इसका मतलब है कि आप संभावित रूप से एक फ़ाइल के लिए एक निर्देशिका प्रतीकात्मक लिंक या एक मौजूदा फ़ाइल / निर्देशिका के लिए एक प्रतीकात्मक लिंक की तरह अवैध लिंक बना सकते हैं।

  • प्रतीकात्मक लिंक या तो पूर्ण या सापेक्ष लिंक हो सकते हैं। निरपेक्ष लिंक वे लिंक होते हैं जो पथ के नाम के प्रत्येक भाग को निर्दिष्ट करते हैं, जबकि सापेक्ष लिंक निर्दिष्ट पथ में जहां सापेक्ष-लिंक विनिर्देशक के सापेक्ष निर्धारित होते हैं।

  • निरपेक्ष प्रतीकात्मक लिंक समान / अलग वॉल्यूम पर फ़ाइलों / निर्देशिकाओं के साथ-साथ UNC पथ का उपयोग करके दूरस्थ फ़ाइल या निर्देशिका को इंगित कर सकते हैं। हालांकि, सापेक्ष प्रतीकात्मक लिंक एक मात्रा में प्रतिबंधित हैं।

  • एलिवेटेड विशेषाधिकारों के लिए एक प्रतीकात्मक लिंक बनाने की आवश्यकता होती है हालांकि लिंक को हटाने के लिए एक बार बनाए गए विशेषाधिकारों की आवश्यकता नहीं होती है।

हार्ड लिंक : एक हार्ड लिंक एक फ़ाइल का फाइल सिस्टम प्रतिनिधित्व है जिसके द्वारा एक से अधिक पथ एक एकल फ़ाइल का संदर्भ देते हैं।

  • MKLINK/Hकेवल फ़ाइलों (नहीं निर्देशिकाओं) के हार्ड लिंक ( पैरामीटर का उपयोग करके ) बनाने की अनुमति देता है । एक हार्ड लिंक केवल उसी वॉल्यूम में एक फ़ाइल बनाई जा सकती है।

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

  • उस फ़ाइल में कोई भी परिवर्तन तुरंत उन अनुप्रयोगों के लिए दिखाई देता है जो इसे लिंक करने वाले हार्ड लिंक के माध्यम से एक्सेस करते हैं। हालाँकि, निर्देशिका प्रविष्टि आकार और विशेषता जानकारी केवल उस लिंक के लिए अपडेट की जाती है जिसके माध्यम से परिवर्तन किया गया था।

  • ध्यान दें कि फ़ाइल की विशेषताएँ उस फ़ाइल के प्रत्येक हार्ड लिंक में परिलक्षित होती हैं, और उस फ़ाइल की विशेषताओं में परिवर्तन सभी हार्ड लिंक पर फैलता है। उदाहरण के लिए, यदि आप उस विशेष हार्ड लिंक को हटाने के लिए किसी हार्ड लिंक पर रीड-ओनली विशेषता को अन-सेट करते हैं, और वास्तविक फ़ाइल के लिए कई हार्ड लिंक हैं, तो आपको फाइल पर रीड-ओनली विशेषता को फिर से सेट करना होगा शेष हार्ड लिंक में से एक फ़ाइल और सभी शेष हार्ड लिंक को केवल पढ़ने के लिए वापस लाने के लिए।

जंक्शन : एक जंक्शन (जिसे सॉफ्ट लिंक भी कहा जाता है) एक हार्ड लिंक से अलग होता है जिसमें स्टोरेज ऑब्जेक्ट्स के संदर्भ अलग निर्देशिका होते हैं, और एक जंक्शन एक ही कंप्यूटर पर विभिन्न स्थानीय संस्करणों पर स्थित निर्देशिकाओं को लिंक कर सकता है। अन्यथा, जंक्शन हार्ड लिंक से अनौपचारिक रूप से काम करते हैं। पुनर्मिलन बिंदुओं के माध्यम से जंक्शनों को लागू किया जाता है।

  • MKLINK/Jएक निर्देशिका के एक जंक्शन ( पैरामीटर का उपयोग करके ) बनाने की अनुमति देता है (और यहां तक ​​कि फ़ाइलों को हालांकि इसे संभवतः एक अवैध लिंक के रूप में समझा जाना चाहिए)।

  • एक जंक्शन को एक निर्देशिका के प्रतीकात्मक लिंक के लिए कड़ी के बराबर माना जा सकता है। एक जंक्शन लिंक एक दूरस्थ निर्देशिका के लिए नहीं बनाया जा सकता है, लेकिन एक ही / अलग मात्रा पर एक निर्देशिका के लिए बनाया जा सकता है।


संदर्भ:

[१] हार्ड लिंक्स और जंक्शन: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006%28v=vs.85%29.aspx

[२] प्रतीकात्मक लिंक बनाना: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363878%28v=vs.85%29.aspx

[३] "निर्देशिका जंक्शन" बनाम "निर्देशिका प्रतीकात्मक लिंक"?


9

हार्ड लिंक एक फ़ाइल का दूसरा नाम है। यदि आपके पास A.txt नाम की फ़ाइल है और आपके पास L.txt लिंक है, तो एक बार जब आप A.txt को हटा देते हैं, तब भी आपके पास L.txt के माध्यम से इसके डेटा तक पहुंच होगी। केवल जब दोनों हटाई गई फ़ाइल चली गई है।

दूसरी ओर, आपके पास एक तथाकथित सॉफ्ट-लिंक है (जंक्शन अगर यह फ़ोल्डर या प्रतीकात्मक लिंक है यदि यह फ़ाइल है)। उस स्थिति में, जब आप A.txt को हटाते हैं, तो फ़ाइल वास्तव में चली जाती है। L.txt को हटाने से फाइल पर कोई प्रभाव नहीं पड़ता है।

हार्ड लिंक को केवल एक ही पार्टीशन पर इस्तेमाल किया जा सकता है क्योंकि फ़ाइल और सॉफ्ट-लिंक को विभाजन में इस्तेमाल किया जा सकता है।

जहाँ तक NTFS जाता है PS फ़ाइल और फ़ोल्डर ज्यादातर विनिमेय होते हैं।


3
क्षमा करें, जंक्शन और सॉफ्ट लिंक NTFS के लिए समान नहीं हैं। :(
विल्क्स-

2
msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx उद्धरण: "एक जंक्शन (यह भी एक नरम लिंक कहा जाता है)"
जोसिप Medved

3
हालांकि, जंक्शन (उर्फ सॉफ्ट-लिंक) और प्रतीकात्मक लिंक के बीच और अंतर है, लेकिन मैं यहां विवरण में नहीं गया हूं। इच्छुक लोगों के लिए, विवरण विंडोज डॉक्यूमेंटेशन में msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx और msdn.microsoft.com/en-us/library/aa363878%28VS पर देखे जा सकते हैं । 85% 29.aspx
जोसिप ने

1
विंडोज विस्टा के बाद से, दोनों NTFS जंक्शन हैं (केवल निर्देशिकाओं को इंगित किया जा सकता है) और यूनिक्स-शैली सिम्बलिंक्स (शाब्दिक रूप से कुछ भी इंगित कर सकते हैं)।
ग्रैविटी

0

कड़ी: केवल एक ही वॉल्यूम के लिए काम करते हैं।
जंक्शन: कोई भी स्थानीय वॉल्यूम
प्रतीकात्मक: स्थानीय वॉल्यूम या UNC पथ

| Link Type     | Same Volume | Different Volume | UNC Path |
|---------------|-------------|------------------|----------|
| Hard link     | Yes         | No               | No       |
| Junction      | Yes         | Yes              | No       |
| Symbolic link | Yes         | Yes              | Yes      |

बोनस चटर

Windows AppCompat प्रयोजनों के लिए जंक्शन और प्रतीकात्मक लिंक बनाते हैं; उन खराब लिखित अनुप्रयोगों के लिए जो सोचते हैं:

  • C: \ Users \ All उपयोगकर्ता
  • C: \ Users \ Default उपयोगकर्ता

वैध हैं।

C:\Users>dir /as

 Directory of C:\Users

04/11/2018  07:45 PM    <SYMLINKD>     All Users [C:\ProgramData]
04/11/2018  07:45 PM    <JUNCTION>     Default User [C:\Users\Default]

उपयोगकर्ता के प्रोफ़ाइल फ़ोल्डर में भी यही बात लागू होती है, जो उन अनुप्रयोगों के लिए उम्मीद करती है जो आज भी मौजूद हैं।

| Folder           | Type       | Target                                                           |
|------------------|------------|------------------------------------------------------------------|    | Application Data | <JUNCTION> | C:\Users\Ian\AppData\Roaming                                     |
| Cookies          | <JUNCTION> | C:\Users\Ian\AppData\Local\Microsoft\Windows\INetCookies         |
| Local Settings   | <JUNCTION> | C:\Users\Ian\AppData\Local                                       |
| My Documents     | <JUNCTION> | C:\Users\Ian\Documents                                           |
| NetHood          | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
| PrintHood        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
| Recent           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Recent            |
| SendTo           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\SendTo            |
| Start Menu       | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Start Menu        |
| Templates        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Templates         |

1
और गैर-अंग्रेजी विंडोज इंस्टॉलेशन पर भी क्रेज़ियर हो जाता है क्योंकि आपको EVEN MORE सिम्बलिंक्स / जंक्शन मिल जाते हैं, क्योंकि कुछ XP में विंडोज़ तक नहीं पता हो सकता है कि वास्तव में लोकल डिरनेम थे, जो आसानी से स्क्रिप्ट या अन्य भाषाओं में बने ट्यूटोरियल को गड़बड़ कर सकते हैं। विस्टा ने हत्या कर दी और इसके बजाय स्थानीय DISPLAY नामों का उपयोग किया, इसलिए वास्तविक रास्ते सभी भाषाओं में समान हैं, लेकिन तब स्थानीय खिड़कियों के कारण उनमें अंग्रेजी की तुलना में और भी अधिक लिंक हैं
My1

-1

प्रोग्रामेटिक रूप से उत्तर देने के लिए:

हार्ड लिंक: share_ptr <>। हमेशा एक मौजूद रहता है।

नरम लिंक: कमजोर_प्रति <>। केवल तभी जब कोई अन्य कड़ी मौजूद हो।


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