आपके कार्यशील लिनक्स सिस्टम पर, मान लीजिए आपके पास एक फ़ाइल है जो डायरेक्टरी की कई परतों के भीतर नेस्टेड है। उस फ़ाइल को आसानी से एक्सेस करने के लिए, आप अपने डेस्कटॉप पर उस फ़ाइल के लिए एक शॉर्टकट बनाना चाहते हैं। इसके लिए सिमलिंक (जिसे सॉफ्ट लिंक भी कहा जाता है) का उपयोग करना संभव है। लिंक का एक और रूप है जिसे हार्ड लिंक के नाम से जाना जाता है। इस लेख में हम सॉफ्ट और हार्ड लिंक्स के बीच अंतर समझाएंगे और देखेंगे कि आपको किसका उपयोग करना चाहिए।
सॉफ्ट बनाम हार्ड लिंक्स
एक सॉफ्ट लिंक, या सिमलिंक, बस एक सिम्बोलिक लिंक है। यह केवल लक्ष्य फ़ाइलपथ का एक पॉइंटर है। एक सॉफ्ट लिंक को परवाह नहीं है कि फ़ाइलपथ पर फ़ाइल या फ़ोल्डर वास्तव में मौजूद है। यदि फ़ाइल या फ़ोल्डर मौजूद नहीं है, तो इसका परिणाम केवल एक टूटा हुआ सिमलिंक होगा। आप सिमलिंक को संपादित या हटा सकते हैं, और यह लक्ष्य फ़ाइल को प्रभावित नहीं करेगा।
दूसरी ओर, एक हार्ड लिंक का प्रभाव लक्ष्य फ़ाइल को एक अतिरिक्त नाम देना है। जब आप एक फ़ाइल पर सामग्री संपादित करते हैं, तो यह दूसरी फ़ाइल पर सामग्री को भी संशोधित करेगा। संक्षेप में, एक सॉफ्ट लिंक केवल लक्ष्य फ़ाइलपथ का एक संदर्भ है, जबकि एक हार्ड लिंक लक्ष्य फ़ाइल के डेटा का एक सीधा लिंक है।
नीचे हम दिखाएंगे कि सॉफ्ट और हार्ड लिंक कैसे काम करते हैं।
सॉफ्ट लिंक्स एक्शन में
मान लीजिए हमारे पास "first_file.txt" नामक एक फ़ाइल है जिसमें इसके भीतर टेक्स्ट की चार लाइनें हैं।
हम अपने होम डायरेक्टरी में एक सॉफ्ट लिंक बनाएंगे।
ln -s first_file.txt ~/sl-firstfile.txt
GNOME डेस्कटॉप वातावरण में, एक फ़ाइल के लिए सॉफ्ट लिंक को केवल फ़ाइल पर राइट-क्लिक करके और "Create Link" चुनकर बनाया जा सकता है। एक सॉफ्ट लिंक बनाया जाता है जहां नाम "Link to
यदि हम "sl-firstfile.txt" की सामग्री देखने का प्रयास करते हैं, तो हम देख सकते हैं कि यह "first_file.txt" के समान है।
यदि हम इन दो फ़ाइलों को फाइल मैनेजर में देखते हैं, तो सॉफ्ट लिंक मूल फ़ाइल के शॉर्टकट के रूप में दिखाई देता है। फ़ाइल के आइकन में काला तीर इसे दर्शाता है।
जब हम ls -l कमांड का उपयोग करके वर्तमान डायरेक्टरी की लिस्टिंग देखने का प्रयास करते हैं, तो आप देख सकते हैं कि सॉफ्ट लिंक लक्ष्य फ़ाइल की ओर इशारा कर रहा है। "sl-firstfile.txt" के लिए अनुमति स्ट्रिंग में पहला वर्ण "l" है, जिसका अर्थ है कि यह प्रविष्टि एक लिंक के लिए है।
सॉफ्ट लिंक्स का डिलीशन व्यवहार
जब लक्ष्य फ़ाइल हटा दी जाती है, तो सॉफ्ट लिंक अभी भी रहेगा।
हालांकि, यह एक "डैंगलिंग" या "टूटा हुआ" लिंक बन जाता है और बेकार हो जाता है।
अब, यदि आप उसी नाम से एक और फ़ाइल बनाते हैं - "first_file.txt" - तो सॉफ्ट लिंक फिर से सक्रिय हो जाएगा।
नोट: यदि आप सॉफ्ट लिंक्स का सामना करते हैं और उस फ़ाइल का पूर्ण पथ ढूंढना चाहते हैं जिसके लिए लिंक बनाया गया है, तो बस नीचे दिखाए अनुसार readlink कमांड का उपयोग करें।
इस कमांड का आउटपुट मूल फ़ाइल का पूर्ण पथ होगा।
हार्ड लिंक्स एक्शन में
अब हम उसी फ़ाइल के लिए अपने होम डायरेक्टरी में एक हार्ड लिंक बनाएंगे। यह निम्न कमांड के साथ किया जा सकता है:
ln first_file.txt hl-first-file.txt
नोट: सॉफ्ट और हार्ड लिंक बनाने के दोनों तरीके ln कमांड का उपयोग करते हैं। एकमात्र अंतर -s फ्लैग है जो एक सिम्बोलिक लिंक को दर्शाता है।
हार्ड लिंक बनाने का एक और तरीका link कमांड का उपयोग करना है।
link hl-firstfile.txt hl2-firstfile.txt
दोनों फ़ाइलों पर जांच दिखाती है कि उनकी सामग्री समान है।
GUI में, दोनों फ़ाइलें अलग-अलग संस्थाओं के रूप में दिखाई देती हैं। हार्ड लिंक के अस्तित्व के बारे में कोई संकेत नहीं है।
आइए हार्ड लिंक फ़ाइल "hl-firstfile.txt" में एक नई लाइन जोड़ने का प्रयास करें।
echo "hello" >> hl-first-file.txt
डेटा में परिवर्तन दोनों फ़ाइलों में देखा जा सकता है।
जब एक हार्ड लिंक बनाया जाता है, तो ऐसा लगता है जैसे दो अलग-अलग फ़ाइलें मौजूद हैं, लेकिन उनका डेटा लिंक्ड है। एक में परिवर्तन दूसरे में परिलक्षित होता है।
क्विक टिप: सॉफ्ट लिंक्स और हार्ड लिंक्स बनाते समय, उस फ़ाइल के समान एक्सटेंशन का उपयोग करना एक अच्छा विचार होगा जिसके लिए लिंक बनाया जा रहा है।
हार्ड लिंक्स का डिलीशन व्यवहार
हार्ड लिंक्स के लिए, मूल फ़ाइल या हार्ड लिंक का डिलीशन चिंता का विषय नहीं है। फ़ाइल पर प्रारंभिक रूप से संग्रहीत डेटा अभी भी हार्ड लिंक के माध्यम से सुलभ है।
सॉफ्ट लिंक्स कब उपयोगी होंगे?
हमने देखा कि सॉफ्ट लिंक्स एक फ़ाइल के लिए शॉर्टकट के रूप में दिखाई देते हैं। जब हमारे पास डायरेक्टरी की कई परतों के भीतर एक फ़ाइल होती है और उसे आसान पहुंच के लिए एक स्थान पर स्टोर करना चाहते हैं, तो एक अच्छा विकल्प बस इसके लिए एक शॉर्ट लिंक बनाना होगा।
हार्ड लिंक्स कब उपयोगी होंगे?
हमने देखा कि एक बार फ़ाइल के लिए हार्ड लिंक बन जाने के बाद, फ़ाइल या हार्ड लिंक में कोई भी परिवर्तन दोनों में परिलक्षित होता है।
मान लीजिए आपके पास एक बैकअप सर्वर है। एक इन्क्रीमेंटल बैकअप मैकेनिज्म का उपयोग किया जा रहा है जहां पिछले बैकअप के बाद से फ़ाइलों/फ़ोल्डर्स में केवल परिवर्तन परिलक्षित होते हैं। आप सर्वर में एक फ़ाइल और कंप्यूटर में संबंधित कॉपी के बीच एक हार्ड लिंक बना सकते हैं। जब बैकअप होता है, तो कंप्यूटर में फ़ाइल में परिवर्तन सर्वर में संबंधित हार्ड-लिंक्ड फ़ाइल में स्वचालित रूप से परिलक्षित होंगे, भले ही फ़ाइलों का नाम बदल जाए।
निष्कर्ष
सॉफ्ट और हार्ड लिंक्स दोनों के अपने उपयोग हैं और इन्हें विभिन्न स्थितियों में उपयोग किया जाना चाहिए। उनके अंतर को समझने से आप लिंक बनाते समय बेहतर निर्णय ले सकते हैं। सॉफ्ट लिंक्स और हार्ड लिंक्स डायरेक्टरी के लिए भी बनाए जा सकते हैं। जबकि सॉफ्ट लिंक्स फाइलसिस्टम में बनाए जा सकते हैं, हार्ड लिंक्स केवल उसी फाइलसिस्टम के भीतर बनाए जा सकते हैं।