जैसा कि अन्य लोगों ने समझाया है, निर्देशिका को आपकी स्क्रिप्ट की बाल प्रक्रिया में बदल दिया जाता है, न कि उस टर्मिनल प्रक्रिया में जिससे स्क्रिप्ट को कहा जाता है। बाल प्रक्रिया के मरने के बाद, आप उस टर्मिनल में वापस आ जाते हैं, जहां वह बचा था।
कई विकल्प:
1. प्रतीकात्मक लिंक
जिस घर तक आप आसानी से पहुँचना चाहते हैं, उस लंबे रास्ते पर अपने घर में एक सिमलिंक लगाएं
$ ln -s /home/alex/Documents/A/B/C ~/pathABC
इसके बाद निर्देशिका को एक्सेस करें:
$ cd ~/pathABC
2. उपनाम
अपने ~ / .bashrc में एक उपनाम रखें:
alias pathABC="cd /home/alex/Documents/A/B/C"
( यहां से )
3. समारोह
एक फ़ंक्शन बनाएं जो निर्देशिका को बदलता है, फ़ंक्शन आपके टर्मिनल की प्रक्रिया में चलता है और फिर अपनी निर्देशिका को बदल सकता है।
( यहां से )
4. बच्चे की तरह दौड़ने से बचें
इसे चलाने के बजाय अपनी स्क्रिप्ट का स्रोत। सोर्सिंग (द्वारा किया .
या किया गया source
) स्क्रिप्ट को अपने स्वयं के सब-रन में चलाने के बजाय उसी शेल में निष्पादित किया जाता है।
$ . ./pathABC
( यहां और यहां से )
5. सीडी-सक्षम संस्करण
cdable_vars
अपने में विकल्प सेट करें ~/.bashrc
और निर्देशिका के लिए एक पर्यावरण चर बनाएँ:
shopt -s cdable_vars
export pathABC="/home/alex/Documents/A/B/C"
तब आप उपयोग कर सकते हैं cd pathABC
( यहां से )