जवाबों:
link=/var/opt/foo
target=$(readlink "$link")
$target अब लिंक का लक्ष्य है, बिल्कुल वैसा ही जैसा कि फाइलसिस्टम में संग्रहीत था।
साइमलिंक सापेक्ष हो सकते हैं, हालांकि, यह सामान्य उपयोग के लिए बेहतर होगा:
target=$(readlink -f "$link")
ध्यान दें कि यह readlinkGNU Coreutils से उपयोग होता है, जो बीएसडी और अन्य प्रणालियों में मौजूद नहीं हो सकता है।
संपादित करें: readlink -f बीएसडी पर काम करता है, जब तक लिंक लक्ष्य मौजूद है। realpathएक और, बीएसडी-ओनली, टूल है जो समान तरीके से काम करता है।
-f, और readlink -fबस के रूप में अच्छी तरह से काम करता है (लिंक लक्ष्य मौजूद है)। बीएसडी में, realpathएक और विकल्प प्रतीत होता है readlink -m।
readlink()4.2BSD के दिनों से एक सिस्टम कॉल है। बीएसडी की वर्तमानreadlinkउपयोगिता को फ्रीबीएसडी 4.10 के साथ जारी किया गया था। यह (re)statकमांड के लिए एक कड़ी के रूप में लागू किया गया था ( MacOS X मैनुअल पेज FreeBSD 9 मैनुअल पेज )। ध्यान दें कि इसका कोई-mविकल्प नहीं है ।