जैसा कि अन्य उत्तरों पर समझाया गया है, आपने निर्देशिका को बदल दिया है, लेकिन केवल उप-शेल के भीतर जो स्क्रिप्ट चलाता है । यह मूल शैल को प्रभावित नहीं करता है।
एक समाधान यह है कि bash script ( ) के बजाय bash फ़ंक्शन का उपयोग किया जाए sh; किसी फ़ंक्शन में अपना बैश स्क्रिप्ट कोड रखकर। यह फ़ंक्शन को कमांड के रूप में उपलब्ध कराता है और फिर, इसे बिना किसी चाइल्ड प्रोसेस के निष्पादित किया जाएगा और इस प्रकार कोई भी cdकमांड कॉलर शेल को प्रभावित करेगा।
बैश कार्य:
बैश प्रोफ़ाइल की एक विशेषता कस्टम फ़ंक्शंस को संग्रहीत करना है जिसे टर्मिनल में या बैश स्क्रिप्ट में उसी तरह से चलाया जा सकता है जिस तरह से आप एप्लिकेशन / कमांड चलाते हैं, इसे लंबे कमांड के लिए शॉर्टकट के रूप में भी इस्तेमाल किया जा सकता है।
अपने फ़ंक्शन को प्रभावी ढंग से सिस्टम बनाने के लिए आपको कई फ़ाइलों के अंत में अपने फ़ंक्शन को कॉपी करना होगा
/home/user/.bashrc
/home/user/.bash_profile
/root/.bashrc
/root/.bash_profile
आप sudo kwrite /home/user/.bashrc /home/user/.bash_profile /root/.bashrc /root/.bash_profileउन फ़ाइलों को जल्दी से संपादित / बना सकते हैं
कैसे :
अपने बैश प्रोफाइल फाइल के अंत में एक नए फंक्शन के अंदर अपने बैश स्क्रिप्ट कोड को कॉपी करें और अपने टर्मिनल को रीस्टार्ट करें, फिर आप cddजो भी फंक्शन लिख सकते हैं उसे चला सकते हैं ।
स्क्रिप्ट उदाहरण
के cd ..साथ शॉर्टकट बनानाcdd
cdd() {
cd ..
}
एलएस शॉर्टकट
ll() {
ls -l -h
}
एलएस शॉर्टकट
lll() {
ls -l -h -a
}