2011-01-01 10 views
25

जब आपएक सिम्लिंक की वास्तविक सामग्री को देखने का कोई तरीका है?

cat some-symlink-to-some-real-file 

कर यह असली फ़ाइल की सामग्री से पता चलता है, क्या नहीं सिमलिंक के भीतर ही है। क्या वास्तव में इसमें क्या है यह देखने का कोई तरीका है?

+1

आप किस प्रोग्रामिंग भाषा से ऐसा करना चाहते थे? –

+4

अंतर्निहित सिस्टम कॉल 'रीडलिंक (2) 'है। जैसा कि उत्तर में से एक में उल्लेख किया गया है, उपयोग करने के लिए प्रत्यक्ष आदेश कुछ सिस्टम (जीएनयू और रिश्तेदार) पर 'रीडलिंक (1)' है। अन्य प्रणालियों पर - एचपी-यूएक्स, सोलारिस, एईक्स - निकटतम दृष्टिकोण 'ls -l' होने की संभावना है, लेकिन यदि लिंक में पथ नाम में न्यूलाइन या अन्य अजीब वर्ण हैं तो समस्या से अवगत रहें। –

उत्तर

31

ls -l आदेश तुम्हें दिखाता हूँ कि का प्रयास करें:

$ ls -l foo 
lrwxrwxrwx 1 user group 11 2010-12-31 19:49 foo -> /etc/passwd 

या readlink command: पथ /etc/passwd को

$ readlink foo 
/etc/passwd 

तो, प्रतीकात्मक कड़ी foo अंक।

+15

बस यह स्पष्ट करने के लिए, सिम्लिंक की "सामग्री" कुछ भी नाम से अधिक कुछ नहीं है। – wnoise

+1

@ बेन: मेह, खोल दाहिने हाथों में एक प्रोग्रामिंग भाषा है, इसलिए भेद पूरी तरह स्पष्ट नहीं है। – ijw

+1

@ijw: यह सच है। हालांकि हमें यह पता लगाने के लिए कि रेखा के प्रोग्रामर पक्ष पर नहीं है, उस रेखा को ठीक से पिन करने की ज़रूरत नहीं है। इसके अलावा, ये शैल कमांड भी नहीं हैं, 'ls' और' readlink' दोनों अलग-अलग अनुप्रयोग हैं। –

1

find . -type l -exec ls -la {} \; 
+0

यह आदेश वर्तमान dir में शुरू होने वाले सभी लिंक पाएगा। अनिवार्य रूप से ls -l, प्रत्येक की सामग्री दिखाने का प्रभारी है। –

5

आप readlink(2) फ़ंक्शन को कॉल कर सकते हैं, जो लिंक किए गए नाम को बफर में रखेगा।

ध्यान दें कि नतीजे समाप्त होने के बजाय परिणाम की लंबाई (वापसी मूल्य में संग्रहित) है। तो यदि आप इसे एक स्ट्रिंग के रूप में उपयोग करना चाहते हैं, तो अपने आप को एक एनयूएल संलग्न करें।

अधिकांश उच्च स्तरीय/स्क्रिप्टिंग भाषाओं, जैसे कि पर्ल या पायथन, एक रीडलिंक रैपर प्रदान करेगा जो सामान्य भाषा-उपयुक्त स्ट्रिंग प्रकार में परिवर्तित हो जाएगा, इसलिए आपको एनयूएल-समाप्ति जैसे विवरणों से परेशान नहीं किया जाएगा।

1

मैन पेज http://man7.org/linux/man-pages/man7/symlink.7.html सिमलिंक नियमित सामग्री (विशेष ध्वज के साथ) है जो इसकी सामग्री में लक्षित करने के पथ के साथ है। तो आप symlink को FAT विभाजन में कॉपी कर सकते हैं और इसे वहां सामग्री पढ़ सकते हैं।