पूर्ण पथ उपयोग प्राप्त करने के लिए:
readlink -f relative/path/to/file
किसी फ़ाइल की निर्देशिका प्राप्त करने के लिए:
dirname relative/path/to/file
आप दोनों को जोड़ भी सकते हैं:
dirname $(readlink -f relative/path/to/file)
अगर readlink -fआपके सिस्टम पर उपलब्ध नहीं है तो आप इस का उपयोग कर सकते * :
function myreadlink() {
(
cd "$(dirname $1)"
echo "$PWD/$(basename $1)"
)
}
ध्यान दें कि यदि आपको केवल एक रिश्तेदार पथ के रूप में निर्दिष्ट फ़ाइल की निर्देशिका में जाने की आवश्यकता है, तो आपको निरपेक्ष पथ को जानने की आवश्यकता नहीं है, एक रिश्तेदार मार्ग पूरी तरह से कानूनी है, इसलिए बस उपयोग करें:
cd $(dirname relative/path/to/file)
यदि आप मूल पथ पर वापस जाना चाहते हैं (जबकि स्क्रिप्ट चल रही है), pushdइसके बजाय का उपयोग करें cd, और popdजब आप कर रहे हैं।
* जबकि myreadlinkऊपर इस प्रश्न के संदर्भ में काफी अच्छा है, यह readlinkऊपर वर्णित उपकरण के सापेक्ष कुछ सीमा है। उदाहरण के लिए, यह अलग से फाइल के लिंक का सही ढंग से पालन नहीं करता है basename।