ZSH:
यदि आप का उपयोग कर रहे हैं zsh alias -g ,,="..", तो आपको इसकी आवश्यकता है, लेकिन इसका कारण ",," हर जगह विस्तारित किया जाएगा, न कि केवल जब इसका उपयोग किया जाता है cd।
से man zshbuiltins:
यदि -g ध्वज मौजूद है, तो एक वैश्विक उपनाम परिभाषित करें; वैश्विक उपनामों का विस्तार किया जाता है, भले ही वे कमान की स्थिति में न हों।
दे घुमा के:
यदि प्रतिबंधित है bash(जैसा कि प्रश्न को बैश के साथ टैग किया गया है ), तो निम्न पढ़ें:
यह एक शुद्ध-उर्फ समाधान है, जैसा कि अनुरोध किया गया है, हालांकि यह उपयोगकर्ता को निराश करने की आवश्यकता से अधिक काम करेगा (मेरी पोस्ट के अंत में चेतावनी देखें)।
उद्धरण man bash:
यदि उपनाम के मान का अंतिम वर्ण रिक्त है, तो उपनाम के बाद अगला कमांड शब्द भी उपनाम के विस्तार के लिए जांचा जाता है।
इसलिए यह cdएक अतिरिक्त स्थान के साथ उर्फ के लिए पर्याप्त है (इसके अगले तर्क के विस्तार की अनुमति देने के लिए) और फिर उर्फ के ,,लिए ..। देखना है कि
alias cd='cd '
alias ,,='..'
आपको वही चाहिए जो आपको चाहिए।
ध्यान दें कि यह न केवल के लिए सही है bash(और इसके aliasकार्यान्वयन), लेकिन सभी POSIX-compilant गोले। उदाहरण से उद्धृत करते हुए man 1p alias(मैनुअल इस सुविधा का स्पष्ट रूप से वर्णन नहीं करता है, केवल एक उदाहरण के माध्यम से):
Nohup सेट करें ताकि यह एक तर्क से निपट सके जो स्वयं एक उपनाम है:
alias nohup="nohup "
चेतावनी:
जैसा कि @PeterCordes ने अपनी टिप्पणी में लिखा है, यह स्वचालित रूप से अन्य उपनामों का विस्तार करेगा जब बाद में लिखा जाएगा cd। cd \grepयदि आप निर्देशिका को एक नाम में बदलना चाहते हैं, तो आपको यह लिखना पड़ सकता है, grepलेकिन आपके grepलिए एक उपनाम है grep --color=auto। बैकस्लैश के बिना, cd"बहुत सारे तर्क" त्रुटि की रिपोर्ट करेंगे (आप cdएक ही बार में दो निर्देशिका नहीं कर सकते )
$ ,,शिकायत होगी, जैसेbash: ..: Is a directory:। (दूसरे शब्दों में, यह एक निष्पादन योग्य नहीं है।)