मैंने बहुत सी वेबसाइटों में पढ़ा है कि, लिनक्स में, प्रतीकात्मक लिंक (सॉफ्ट लिंक, सिमिलिंक) सिर्फ पॉइंटर्स की तरह हैं जो एक और फाइल को संदर्भित करते हैं, जो कहीं भी स्थित हो सकती है (जैसे विंडोज शॉर्टकट)। हालाँकि, जब मैं उस फ़ोल्डर के डिस्क उपयोग की जांच करता हूं जिसमें प्रतीकात्मक लिंक होते हैं, तो मेरे फ़ाइल प्रबंधक के कहने और क्या duरिपोर्ट के बीच एक बेमेल संबंध होता है। हालाँकि, यदि मैं du -L( -L, --dereference; dereference all symbolic linksमैन पेज से) टाइप करता हूं, तो मेरे फाइल मैनेजर की रिपोर्ट का उत्पादन du -Lऔर आकार समान है ।
मेरा प्रश्न है : अगर मेरे पास एक बड़ी फाइल के लिए सॉफ्टलिंक है, उदाहरण के लिए, मेरा अलगhomeविभाजन, तो क्या मुझे कोई समस्या होगी?
उदाहरण :
मेरा /var/tmpफ़ोल्डर अब सादा खाली है। चलो एक फ़ाइल बनाएँ:
$ cat /some/file.txt > file.txt
$ du -ac
164 ./file.txt
168 .
168 total
और मेरे फ़ाइल प्रबंधक (थूनर, इस मामले में) की रिपोर्ट
आकार: 1 आइटम, कुल 163.0 kB
ठीक है। अब, इसमें एक बहुत बड़ी फ़ाइल /tmpऔर इसके लिए एक सिम्लिंक बनाने देता है:
$ cat /dir/really_big.txt > /tmp/heavy.txt
$ du -a | grep heavy.txt
408 ./heavy.txt
$ ln -s /tmp/heavy.txt heavy.txt
$ du -ac
164 ./file.txt
0 ./heavy.txt
168 .
168 total
अभी सब कुछ ठीक है। लेकिन अगर मैं अपना फाइल मैनेजर खोलूं:
आकार: 2 आइटम, कुल 570.3 kB
और अंत में:
$ du -acL
164 ./file.txt
408 ./heavy.txt
576 .
576 total
यदि जो विभाजन /var/tmpस्थित है वह 1 GiB बड़ा है, और मैं इसमें एक लिंक 1 GiB फ़ाइल में बनाता हूं, disk क्या मेरी हार्ड डिस्क मर जाएगी? मुझे पता है कि du168 और थूनर 1 GiB को आउटपुट देगा, लेकिन मुझे नहीं पता कि यह सही है।