क्या हार्ड लिंक विंडोज शॉर्टकट के बराबर हैं?


52

विकिपीडिया एक कठिन कड़ी को परिभाषित करता है :

एक निर्देशिका प्रविष्टि जो एक नाम को एक फ़ाइल सिस्टम पर फ़ाइल के साथ जोड़ती है। (एक निर्देशिका स्वयं एक विशेष प्रकार की फ़ाइल होती है जिसमें ऐसी प्रविष्टियों की एक सूची होती है।) इस शब्द का उपयोग फ़ाइल सिस्टम में किया जाता है जो एक ही फ़ाइल के लिए कई हार्ड लिंक बनाने की अनुमति देता है।

मैं सोच रहा हूं कि क्या हार्ड लिंक की अवधारणा शॉर्टकट की विंडोज अवधारणा के बराबर है ।

यदि हार्ड लिंक शॉर्टकट के बराबर नहीं हैं, तो हार्ड लिंक के लिए निकटतम विंडोज फीचर क्या है?


1
आपके द्वारा साझा किए गए उस विकी पृष्ठ से वास्तव में कुछ महान संदर्भ हैं।
eccentricSam

8
Microsoft NTFS हार्डलिंक का समर्थन करता है और वे यूनिक्स हार्डलिंक के समान हैं। मुझे लगता है कि शॉर्टकट विशेष वस्तु ओब खिड़कियों environnement रहे हैं, लेकिन वे असली hardlinks को filesytem संगठन विपरीत से संबंधित नहीं हैं
Kiwy

निम्नलिखित लिंक एक अच्छी व्याख्या देता है: comptb.cects.com/…

3
मुझे लगता है कि समानांतर भ्रामक है, शॉर्टकट "इंटरफ़ेस" लिंक हैं केवल लक्ष्य के बारे में पाठ जानकारी के साथ फाइलें जो इंटरफ़ेस द्वारा व्याख्या की जाती हैं और फाइल सिस्टम द्वारा नहीं। कमांड लाइन से वे वास्तव में फाइलसिस्टम अर्थों में किसी चीज की ओर इशारा नहीं कर रहे हैं। विंडोज (या बेहतर कहा गया है कि NTFS) के पास उचित सिम्बलिंक हैं en.wikipedia.org/wiki/NTFS_symbolic_link जो न तो शॉर्टकट हैं और न ही हार्डलिंक। मुझे लगता है कि मैं उन्हें विंडोज में ड्रॉपबॉक्स फ़ोल्डर कहीं भी इस्तेमाल करता हूं, यह शॉर्टकट के साथ नहीं किया जा सकता है।
alfC

5
विंडोज शॉर्टकट फाइलें लिनक्स .desktop फाइलें बहुत पसंद हैं। लिनक्स सहानुभूति और हार्ड लिंक एक पूरी तरह से अलग चीज है जो कभी-कभी एक ही उद्देश्य से काम करती है।
माइकबाकॉक

जवाबों:


113

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

संक्षेप में, इस कमांड के साथ एक सॉफ्ट लिंक बनाया गया है:

ln -s foo bar

यदि आप दौड़ते हैं ls -l, तो आप देखेंगे:

lrwxrwxrwx 1 terdon terdon 3 Mar 10 15:58 bar -> foo
-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 foo

इसका ->मतलब है कि barएक लिंक है foo। इसलिए, barउदाहरण के लिए पाठ संपादक के साथ खोलना , वास्तव में अलग फाइल को खोल देगा foo। हालांकि, डिलीट barकरने से शॉर्टकट डिलीट हो जाएगा, यह फाइल को प्रभावित नहीं करेगा foo

दूसरी ओर, हार्ड लिंक इस कमांड के साथ बनाए गए हैं:

ln foo bar

यदि आप अब चलाते हैं ls -l, तो फ़ाइलों के बीच किसी भी संबंध का कोई संकेत नहीं है:

-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 bar
-rw-r--r-- 2 terdon terdon 0 Mar 10 15:58 foo

लेकिन - और यह बहुत महत्वपूर्ण है - वे वास्तव में एक ही फ़ाइल हैं । यूनिक्स फ़ाइल सिस्टम पर फाइलें इनोड का उपयोग करके संग्रहीत की जाती हैं ; एक इनकोड मूल रूप से फाइलसिस्टम भौतिक हार्ड ड्राइव पर किसी विशेष स्थान पर एक फ़ाइल नाम को मैप करता है। तो, हार्ड लिंक ऐसी फाइलें हैं जो उनके लक्ष्य के समान इनकोड को इंगित करती हैं । इसे लगाने का एक और तरीका है कि सभी फाइलें वास्तव में हार्ड लिंक हैं जो उनके इनोड्स की ओर इशारा करती हैं। एक फ़ाइल के लिए एक कड़ी बनाना बस फ़ाइल सिस्टम पर एक नया पॉइंटर (फ़ाइल) बनाता है जो उसी इनोड को इंगित करता है। प्रत्येक इनोड में एक या एक या किसी की ओर इशारा करते हुए कई फाइलें हो सकती हैं।

इसे और अधिक स्पष्ट रूप से समझने के लिए, ls -iएक फाइल से जुड़े इनोड को दिखाता है। आइए एक नरम लिंक और एक कड़ी बनाएं और देखें कि क्या होता है:

ln -s foo SoftLinkToFoo
ln foo HardLinkToFoo

अब, उनके आयतों की जाँच करें:

यहाँ छवि विवरण दर्ज करें

आप ऊपर देख सकते हैं, दोनों fooऔर HardLinkToFooएक ही inode (16648029) जबकि SoftLinkToFoo एक अलग से एक (16648036) है है।

अगर हम नाम बदलने पर क्या होता है fooके साथ mv foo bar?

यहाँ छवि विवरण दर्ज करें

लाल रंग एक टूटे हुए नरम लिंक को इंगित करता है, जिसका लक्ष्य अब नहीं मिल सकता है। ऐसा इसलिए है क्योंकि सॉफ्ट लिंक किसी फ़ाइल के नाम की ओर इशारा करते हैं, न कि उसके इनोड के। ध्यान दें कि नाम बदलने के बावजूद, इनोड वही रहता है इसलिए हार्डलिंक ठीक है, यह अभी भी काम करता है।

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


6
@ कीवी यह विपरीत है: पूर्ण सिम्बलिंक्स कई अलग-अलग तरीकों से विफल होते हैं (जैसे ही आप डेटा को चारों ओर ले जाते हैं, इसे एक अलग स्थान पर माउंट करें, इसे वापस करें ...) और सबसे अच्छा बचा जाता है।
गिल्स एसओ- बुराई को रोकना '

3
यह भी ध्यान देने योग्य है कि एक हार्ड लिंक को हटाना (के माध्यम rmसे unlink()) लिंक लिंक को शून्य तक पहुंचने तक ही घटाता है, जब फ़ाइल सामग्री द्वारा कब्जा किए गए ब्लॉक जारी किए जाते हैं। मुझे यकीन नहीं है कि "हार्ड लिंक वास्तव में एक ही फ़ाइल के दो उदाहरण हैं" कड़ाई से सही है, क्योंकि दो नाम एक ही इनोड की ओर इशारा करते हैं, और इस प्रकार एक ही सामग्री, बजाय फ़ाइल के दो उदाहरण होने के किसी भी तरह से।
एम्मेट

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

2
मुझे यह उत्तर पसंद है लेकिन वास्तव में यह समझने में काफी घटिया है कि विंडोज शॉर्टकट क्या है। नीचे @ शकुंतला की बेहतर प्रतिक्रिया है क्योंकि विंडोज शॉर्टकट एक सिमिलिंक की तुलना में लिनक्स .desktop फ़ाइल की तरह है।
mikebabcock

18

नरम और कठोर लिंक क्या हैं, इसकी एक अच्छी व्याख्या है, लेकिन एक बात को स्पष्ट करने की आवश्यकता है।

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

विंडोज शॉर्टकट, फ़ाइल सिस्टम ऑब्जेक्ट के नाम के अलावा, निम्न जानकारी होती है: PIDL (अपारदर्शी बाइनरी "पथ" शेल नेमस्पेस के भीतर), विवरण, हॉटकी, आइकन, कार्यशील निर्देशिका। यदि टूटे हुए शॉर्टकट को ठीक करने के लिए NTFS फाइल सिस्टम का उपयोग किया जाता है, तो Windows NTFS ऑब्जेक्ट आइडेंटिफ़ायर भी जोड़ता है।

विंडोज शॉर्टकट के बराबर एक .desktop फ़ाइल है। SuperUser पर यह प्रश्न देखें: क्या लिनक्स में .lnk के बराबर है?


6

नहीं, लिनक्स में चीजें अलग तरह से काम करती हैं।

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

जैसा कि हम जानते हैं कि मनुष्य संख्याओं को याद रखने में अच्छे नहीं हैं। (यह है कि कैसे फोनबुक विकसित)

इसलिए, फ़ाइलनाम प्रत्येक इनोड को एक मानव पठनीय नाम देने के लिए चित्र में आया। असल में, एक हार्डलिंक एक फाइल को एक इनोड में बांधता है। एक इनोड में कई हार्डलिंक हो सकते हैं। यदि कोई विशेष इनकोड के लिए कोई हार्डलिंक मौजूद नहीं है, तो इनोड द्वारा उपयोग किए गए डिस्क स्थान को नई फ़ाइलों के लिए फिर से आवंटित किया जा सकता है। जिसका अर्थ है, प्रत्येक फ़ाइल के लिए कम से कम एक हार्डलिंक मौजूद होना चाहिए। फ़ाइल नाम (फ़ाइल ब्राउज़र में आपके द्वारा देखा गया फ़ाइल नाम / आइकन के रूप में विज़ुअलाइज़्ड) स्वयं एक हार्डलिंक है।

विंडोज में, शॉर्टकट एक अलग फ़ाइल (* .lnk फ़ाइल) है। इसमें मूल फ़ाइल (विशेष रूप से फ़ाइल पथ) के बारे में जानकारी है। लिनक्स धारणा में, एक विंडोज शॉर्टकट '.lnk' के साथ समाप्त होने वाले फ़ाइलनाम के लिए एक और इनोड हार्डलिंक होगा।


3
NTFS वास्तव में इस तरह से बहुत काम करता है। एक फ़ाइल एमएफटी में एक प्रविष्टि है, और निर्देशिका प्रविष्टियां केवल आईडी फाइल करने के लिए फाइलनाम को मैप करती हैं। यह हार्डलिंक का समर्थन करता है और, 2008/7 / विस्टा (?) के बाद से, यहां तक ​​कि सहानुभूति भी। इस बिंदु पर, सबसे बड़ा अंतर सांस्कृतिक है।
cHao

2

अगर आप NTFS फाइलसिस्टम है तो विंडोज पर आप हार्डलिंक भी बना सकते हैं।

fsutil hardlink create target_file source_file

फ़ाइलों को एक ही तार्किक ड्राइव पर होना चाहिए।


यह सही है - NTFS हार्डलिंक का भी समर्थन करता है। अक्सर उपकरण आपको उन्हें बनाने के लिए व्यवस्थापक विशेषाधिकार रखने की आवश्यकता होती है। "समान तार्किक ड्राइव" के बारे में - यह कहना अधिक सटीक होगा, उन्हें एक ही फाइल सिस्टम पर होने की आवश्यकता है। एक लॉजिकल ड्राइव कुछ भी हो सकता है, जिसमें substकमांड द्वारा बनाया गया ड्राइव लेटर भी शामिल है । एक उपकरण को इस बात की जानकारी नहीं हो सकती है / उसकी देखभाल नहीं की जा सकती है और इस तरह वह हार्डलिंक बनाने से इनकार कर सकता है । एक बहुत उपयोगी चीज लिंक शैल एक्सटेंशन है जो एक्सप्लोरर को उन्हें बनाने में सक्षम बनाता है।
टोबियास

1

एक बड़ा अंतर, हार्ड-लिंक फ़ोल्डर्स के लिए नहीं बनाया जा सकता है, लेकिन फ़ाइलों के लिए।

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

आपका प्रश्न प्रतीकात्मक लिंक या सॉफ्ट लिंक और शॉर्टकट के बीच अंतर होना चाहिए ।

इस के अनुसार:

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

एक "शॉर्टकट" केवल एक नियमित फ़ाइल है जिसमें गंतव्य फ़ाइल या निर्देशिका का संदर्भ है।

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

एक विंडोज शॉर्टकट और एक लिनक्स लांचर (कुछ स्थान की ओर इशारा करते हुए) समान होगा।


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

1
क्या आप सुनिश्चित हैं कि आप शॉर्टकट के लिए cmd का उपयोग कर सकते हैं।
nux

1
मैंने अभी-अभी अपना Windows VM निकाला और अपने डेस्कटॉप पर एक फ़ोल्डर का शॉर्टकट बनाया, विंडोज़ शॉर्टकट सिम्बलिंक्स के समान (यदि समान नहीं हैं) समान हैं। जब आप किसी कारण से cmd.exe का उपयोग करके उन्हें सीडी नहीं कर सकते, तो आप एक निर्देशिका के लिए .lnk बना सकते हैं और एक्सप्लोरर के माध्यम से इसका उपयोग कर सकते हैं।
terdon

1
मतदाताओं को नीचा दिखाने का कारण देना चाहिए
nux

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