मैंने बहुत सी वेबसाइटों में पढ़ा है कि, लिनक्स में, प्रतीकात्मक लिंक (सॉफ्ट लिंक, सिमिलिंक) सिर्फ पॉइंटर्स की तरह हैं जो एक और फाइल को संदर्भित करते हैं, जो कहीं भी स्थित हो सकती है (जैसे विंडोज शॉर्टकट)। हालाँकि, जब मैं उस फ़ोल्डर के डिस्क उपयोग की जांच करता हूं जिसमें प्रतीकात्मक लिंक होते हैं, तो मेरे फ़ाइल प्रबंधक के कहने और क्या 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 क्या मेरी हार्ड डिस्क मर जाएगी? मुझे पता है कि du
168 और थूनर 1 GiB को आउटपुट देगा, लेकिन मुझे नहीं पता कि यह सही है।