एक सांकेतिक लिंक और एक शॉर्टकट के बीच क्या अंतर है?
एक सांकेतिक लिंक और एक शॉर्टकट के बीच क्या अंतर है?
जवाबों:
मुझे लगता है कि महत्वपूर्ण बिंदु यह है कि शॉर्टकट केवल एक फ़ाइल है। उनके पास एक आकार (एक छोटा सा, वह बस संदर्भ जहां वे इंगित करते हैं) और उनका उपयोग करने के लिए उस फ़िलाटाइप का समर्थन करने के लिए एक आवेदन की आवश्यकता होती है।
एक प्रतीकात्मक लिंक फाइल सिस्टम स्तर है, और सब कुछ इसे मूल फ़ाइल के रूप में देखता है । प्रतीकात्मक लिंक का उपयोग करने के लिए एक एप्लिकेशन को किसी विशेष समर्थन की आवश्यकता नहीं होती है।
find
, tar
, du
, आदि) है सांकेतिक लिंक के बारे में पता करने की जरूरत है या वे कुछ बहुत ही बेवकूफ बातें करते हैं सकता है। उदाहरण के लिए, सांकेतिक लिंक के बाद अंधा करना फ़ाइल सिस्टम में चक्र बना सकता है, और यह बुरा है ।
एक "सिम्बोलिक लिंक" वास्तव में एक कार्यात्मक तरीके से एक निर्देशिका या फ़ाइल के विकल्प की तरह काम कर सकता है, और आमतौर पर यूनिक्स / लिनक्स वातावरण में उपयोग किया जाता है। हालाँकि विंडोज में इसके लिए स्पष्ट रूप से समर्थन है, लेकिन मैंने अभी तक इसका कोई वास्तविक उपयोग नहीं देखा है।
एक "शॉर्टकट" सिर्फ एक नियमित फ़ाइल है जिसमें गंतव्य फ़ाइल या निर्देशिका के साथ-साथ आइकन जैसी कुछ अन्य चीजों को प्रदर्शित किया जाना है। एक प्रतीकात्मक लिंक के विपरीत, आप DOS में "cd ./shortcut-name" (Unix / Linux में आप "cd ./symlink-name" नहीं कर सकते हैं और यह वास्तविक उप-निर्देशिका की तरह ही काम करेगा)।
इसके अलावा, अधिकांश विंडोज अनुप्रयोगों में, जब आप किसी भी फ़ाइल में शॉर्टकट पर क्लिक करते हैं-> GUI डायलॉग खोलें, तो आपका फ़ाइल नाम फ़ील्ड उस शॉर्टकट के फ़ाइल नाम के साथ-साथ उप-निर्देशिका की तरह काम करता है, जबकि यूनिक्स / लिनक्स में GUI व्यवहार करता है। पथ के रूप में एक प्रतीकात्मक लिंक (फ़ाइल नाम फ़ील्ड को संशोधित किए बिना)।
जैसा कि दूसरों ने उल्लेख किया है, एक प्रतीकात्मक लिंक फाइल सिस्टम स्तर पर उपलब्ध लिंक के प्रकारों में से एक है, जो इसे अनुप्रयोगों के लिए पारदर्शी बनाता है। मैंने इस दस्तावेज़ को बहुत उपयोगी पाया है (esp। "क्रॉप / अनरोल / स्प्लिस आउटर जंक्शन / सिम्बोलिक लिंक" सेक्शन)। और वहाँ उपकरण भी अच्छा लग रहा है। (इस का उल्लेख करके, और mklink, उम्मीद है कि और अधिक खोज इस चर्चा मिल जाएगा।)
एक शॉर्टकट एक फ़ाइल है, एक वास्तविक लिंक नहीं है, और यह आम तौर पर विंडोज यूआई (उपयोगकर्ता इंटरफ़ेस) द्वारा व्याख्या किए जाने पर केवल लिंक के रूप में सफलतापूर्वक पालन किया जाता है। उदाहरण के लिए, जब आप किसी फ़ोल्डर शॉर्टकट पर डबल-क्लिक करते हैं, तो Windows आपको उस अन्य स्थान पर पुनर्निर्देशित करता है। (इसमें जेनेरिक फाइल ओपन और फाइल सेव डायलॉग शामिल हैं, जो अधिकांश एप्लिकेशन इनवोक करते हैं।) मेरे डेस्कटॉप पर, मेरे पास इस फ़ोल्डर का शॉर्टकट है: C: \ ProgramData \ Microsoft \ Windows \ Start \ मेनू \ प्रोग्राम \ G।
Shorcut का फ़ाइल नाम है: C: \ Users \ user5 \ Desktop \ Games.lnk, हालाँकि Windows .lnk एक्सटेंशन को दबा देता है और बस "गेम" दिखाता है, भले ही आप "ज्ञात फ़ाइल प्रकारों के लिए एक्सटेंशन छिपाएँ" को अनचाहा कर दें। लेकिन अगर आप कमांड प्रॉम्प्ट खोलते हैं और एक डीआईआर करते हैं, तो आप इसे देखेंगे:
C:\Users\user5\Desktop>dir "g*"
Volume in drive C has no label.
Volume Serial Number is 900...
Directory of C:\Users\user5\Desktop
03/08/2014 05:30 PM 1,710 Games.lnk
1 File(s) 1,710 bytes
0 Dir(s) 246,818,222,080 bytes free
मैं \ D विकल्प (निर्देशिका के लिए) का उपयोग करके एक सिमलिंक के साथ समकक्ष बना सकता हूं:
C:\Users\user5\Desktop>mklink /D mysymlink "C:\ProgramData\Microsoft\Windows\S
tart Menu\Programs\G"
symbolic link created for mysymlink <<===>> C:\ProgramData\Microsoft\Windows\Sta
rt Menu\Programs\G
C:\Users\user5\Desktop>cd mysymlink
C:\Users\user5\Desktop\mysymlink>
(एक निर्देशिका जंक्शन (\ J) भी एक विकल्प है, क्योंकि यह एक फ़ोल्डर लिंक है।) विंडोज एक्सप्लोरर, इस कंसोल और अधिकांश अनुप्रयोगों की तरह, आपको इस (स्पष्ट) उपनिर्देशिका के बजाय "नीचे" ब्राउज़ करने देगा (ए) पुनर्निर्देशन "भर में" एक अलग स्थान या (ख) में विफल।
शॉर्टकट उपनिर्देशिका की तरह व्यवहार नहीं करते हैं। मैं इस कमांड के साथ विंडोज यूआई के डिफ़ॉल्ट फ़ाइल व्यवहार को लागू कर सकता हूं (यह विंडोज एक्सप्लोरर में "जी" फ़ोल्डर खोलता है):
C:\Users\user5\Desktop>"Games.lnk"
जबकि mysymlink सूचीबद्ध है (गणना देखें) एक सच्चे उपनिर्देशिका के रूप में और उस तरीके से लॉन्च नहीं किया जा सकता है:
C:\Users\user5\Desktop>dir "my*"
Volume in drive C has no label.
Volume Serial Number is 900...
Directory of C:\Users\user5\Desktop
03/29/2014 06:08 PM <DIR> mysubdir
03/29/2014 05:40 PM <SYMLINKD> mysymlink [C:\ProgramData\Microsoft\Windo
ws\Start Menu\Programs\G]
0 File(s) 0 bytes
2 Dir(s) 246,816,153,600 bytes free
C:\Users\user57\Desktop>mysubdir
'mysubdir' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\user57\Desktop>mysymlink
'mysymlink' is not recognized as an internal or external command,
operable program or batch file.
इसके विपरीत, आप निर्देशिका को शॉर्टकट में नहीं बदल सकते:
C:\Users\user5\Desktop>cd "Games.lnk"
The directory name is invalid.
Windows UI आपको शॉर्टकट के गुणों को संपादित करने के लिए राइट-क्लिक करता है। या, निम्न दिखाता है कि वास्तव में .lnk फ़ाइल (बाइनरी डेटा) में क्या संग्रहीत है, हालांकि एक हेक्स संपादक बेहतर प्रदर्शित करेगा:
C:\Users\user5\Desktop>notepad.exe "Games.lnk"
जबकि एक वास्तविक सबफ़ोल्डर पर नोटपैड को निष्पादित करने की कोशिश करना एक "एक्सेस से वंचित है" त्रुटि संदेश, और एक खाली नोटपैड को पॉप अप करता है।
इसके विपरीत, अगर मैं एक फ़ाइल सिम्लिंक (एक फ़ोल्डर सिम्लिंक नहीं) बनाता हूं, तो मैं इसे नोटपैड के साथ लॉन्च कर सकता हूं। निम्नलिखित notepad.exe कॉल में से, पहले दो काम, और तीसरा विफल (यह .LNK फ़ाइल, बाइनरी gobbledegook खोलता है)।
C:\Users\user5\Desktop>mklink symplain.txt plain.txt
symbolic link created for symplain.txt <<===>> plain.txt
C:\Users\user5\Desktop>notepad.exe "symplain.txt"
C:\Users\user5\Desktop>notepad.exe "plain.txt"
C:\Users\user5\Desktop>notepad.exe "plain.txt.lnk"
यह सिर्फ एक सांत्वना की बात नहीं है। मेरे डेस्कटॉप पर नोटपैड के लिए एक शॉर्टकट कॉपी करना और उस पर प्रत्येक तीन को खींचने और छोड़ने की कोशिश करना, यह सटीक समान व्यवहार प्रदर्शित करता है। (क्योंकि ड्रैग एंड ड्रॉप, डबल क्लिक के विपरीत, एप्लिकेशन को शॉर्टकट की व्याख्या करने देता है।)
निर्देशिका सिम्बलिंक और जंक्शनों के बीच अंतर के बारे में, इस चर्चा को देखें , और यहाँ एक बहुत ही उपयोगी वर्णन है :
"जिस तरह से विंडोज प्रतीकात्मक लिंक और निर्देशिका जंक्शनों को हल करता है, उस तरीके से एक बड़ा अंतर है जहाँ प्रसंस्करण होता है। विंडोज एक स्थानीय फ़ाइल सिस्टम पर प्रतीकात्मक लिंक को संसाधित करता है, तब भी जब वे एक दूरस्थ फ़ाइल सर्वर पर किसी स्थान का संदर्भ देते हैं। विंडोज एक निर्देशिका का संदर्भ देता है। सर्वर पर ही फ़ाइल सर्वर। सर्वर पर प्रतीकात्मक लिंक इसलिए उन स्थानों को संदर्भित कर सकते हैं, जो अन्य क्लाइंट वॉल्यूम की तरह केवल क्लाइंट से ही एक्सेस किए जा सकते हैं, जबकि निर्देशिका जंक्शन नहीं कर सकते। इसे संबोधित करने के लिए, Windows Vista दोनों फ़ाइलों के लिए नए प्रतीकात्मक लिंक प्रकार का समर्थन करता है। और निर्देशिका।
"प्रतीकात्मक लिंक के निहितार्थ को समझने के लिए कई फाइल सिस्टम कमांड को अपडेट किया गया है। उदाहरण के लिए, डिलीट कमांड लिंक का पालन नहीं करना जानता है, जिसके परिणामस्वरूप लक्ष्य को हटा दिया जाएगा, लेकिन लिंक को हटाने के बजाय। हालांकि, सभी एप्लिकेशन नहीं। प्रतीकात्मक लिंक को सही ढंग से संभाल सकते हैं, एक प्रतीकात्मक लिंक बनाने के लिए नए बनाएँ प्रतीक चिह्न लिंक विशेषाधिकार की आवश्यकता है जो केवल प्रशासक डिफ़ॉल्ट रूप से है। "
"प्रतीकात्मक लिंक शॉर्टकट से भिन्न होते हैं, जिसमें वे शॉर्टकट (.lnk) के साथ वांछित डेटा ऑब्जेक्ट के लिए एक पारदर्शी * मार्ग प्रदान करते हैं, कुछ को शॉर्टकट फ़ाइल की सामग्री को पढ़ना और व्याख्या करना पड़ता है और फिर उस फ़ाइल को खोलें जिसे वह संदर्भित करता है (अर्थात) यह एक दो चरण की प्रक्रिया है)। जब कोई एप्लिकेशन सिम्लिंक का उपयोग करता है तो यह सिम्बलिन द्वारा संदर्भित डेटा ऑब्जेक्ट तक तत्काल पहुंच प्राप्त करता है (अर्थात यह एक चरण प्रक्रिया है)। "
स्रोत: http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html
कभी-कभी इसका एक कार्यात्मक उदाहरण अच्छा होता है, इसलिए बीमार समझाते हैं कि मैं इस फ़ंक्शन का उपयोग कैसे करता हूं।
मैं बैकअप ड्राइव के लिए Google ड्राइव का उपयोग करता हूं, लेकिन कभी-कभी मैं एक विशिष्ट फ़ोल्डर में फ़ाइलों का बैकअप लेना चाहता हूं (मैं उन्हें ../google ड्राइव पर स्थानांतरित नहीं कर सकता)। विशेष रूप से विंडोज़ 10 यूनिवर्सल एप्स के साथ, कॉन्फिग फाइल और ऐसे एपडटा में संग्रहित हैं, और अधिकांश समय मैं इस स्थान को नहीं बदल सकता।
मैं विंडोज़ देशी stikynot ऐप का उपयोग करता हूं, और मैं अपने नोट्स का बैकअप लेना चाहता था, इसलिए मैंने यहां एक सिमलिंक का उपयोग किया। Google ड्राइव लिंक को एक वास्तविक फ़ाइल के रूप में पहचानता है और फ़ाइलों को ठीक से सिंक करता है, जबकि वास्तविक फ़ाइल अभी भी ऐपडेटा फ़ोल्डर में है।
जब मेरे पास प्रोजेक्ट फ़ोल्डर जैसी फाइलें स्थानीय रूप से होती हैं, तो मैं उस क्लाउड को सिंक नहीं करना चाहता हूं जिसका मैं शॉर्टकट (कॉपी, अतीत-> पेस्ट शॉर्टकट) का उपयोग करता हूं।