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
:। (दूसरे शब्दों में, यह एक निष्पादन योग्य नहीं है।)