मेरे पास पथ /foo/bar/gazook/script.rb
पथ के साथ रूबी स्क्रिप्ट है। मैंने $HOME/bin
में इसके लिए एक सिम्लिंक भी बनाया।फ़ाइल को सिम्लिंक करने के बाद, मुझे रूबी में मूल फ़ाइल का मार्ग कैसे प्राप्त होगा?
अब, मैं अपनी रूबी स्क्रिप्ट निर्देशिका /foo
में किसी अन्य फ़ाइल तक पहुंचने के लिए चाहता हूं, और पथ को सापेक्ष रखने के लिए, मेरे पास मेरी स्क्रिप्ट में एक चर FOO_DIRECTORY = File.expand_path(File.dirname(__FILE__) + "/../../")
है।
समस्या (के बाद से मैं अपने किसी अन्य स्थान से विस्तार हो रहा है लगता है) है कि अगर मैं अपने सिमलिंक से मेरी स्क्रिप्ट चलाने, इस रिश्तेदार निर्देशिका गलत है।
मैं इसे कैसे ठीक करूं? क्या एक पूर्ण पथ का उपयोग करने के अलावा कोई रास्ता है?
अधिक सामान्य समाधान के लिए, आपको एक लूप में सिम्लिंक को हल करने की आवश्यकता है, क्योंकि एक सिम्लिंक दूसरे को इंगित कर सकता है। इसके अलावा, आपको पथ के प्रत्येक भाग को जांचना होगा: 'bin' एक हो सकता है symlink भी। मैं 'File.realpath' की सिफारिश करेंगे। – hagello