मुझे इस बारे में कोई समस्या नहीं है कि इस साधारण समस्या के बारे में सोच इतनी जटिल क्यों है - लेकिन शायद मुझे सिर्फ सवाल गलत तरीका लगा। वैसे भी: जब मुझे एक समान कार्यक्षमता की आवश्यकता थी, तो मैंने उपयोग किया:
ls -lL
यही मेरे मामले में चाल चली। से lsआदमी पेज:
-L, --dereference
when showing file information for a symbolic link,
show information for the file the link references
rather than for the link itself
उदाहरण के लिए, मैंने /media/stickअपने USB स्टिक पर डेटा एक्सेस करने के लिए एक शॉर्टकट बनाया है । ls -l /media/stickवास्तविक लिंक दिखाएगा, जबकि USB स्टिक पर सामग्रीls -lL /media/stick दिखाएगा ।
की अंदरूनी कामकाज के बीच अंतर के बारे में कुछ गहरे अनुसंधान के बाद -Hऔर -L, मैं अंत में पर इस मामले के बारे में एक बहुत अच्छा लेख भर में आया था उथला विचार ब्लॉग (यहां तक कि अपने सुख के लिए कुछ साफ खोल स्क्रिप्ट चाल की विशेषता!)
यह दो विकल्पों के बीच सूक्ष्म अंतर को इंगित करता है (मूल मैनुअल की तुलना में बेहतर तरीका!) निम्नानुसार है:
-H - कमांड लाइन पर स्पष्ट रूप से उल्लिखित उन लिंक्स को केवल हटा दें
-L- यदि वे कमांड लाइन पर उल्लिखित नहीं हैं तो भी डेरेक्शन लिंक
(जब इन दोनों को सरल रोजमर्रा के कार्यों के साथ उपयोग किया जाता है, तो सामान्य रूप से आउटपुट में कोई अंतर नहीं होना चाहिए।)
इसके अलावा: क्या आप लंबे रूप को याद रखना पसंद करते हैं ( --option), यह सबसे --dereferenceअधिक लंबे समय तक राक्षस की तुलना में याद रखने के लिए सबसे कम बोझिल है --dereference-command-line-symlink-to-dir।