टर्मिनल में पिछली कार्यशील निर्देशिका में कैसे जाएं?


212

टर्मिनल में, मैं पिछली निर्देशिका में जाने के लिए एक कुंजी को कैसे परिभाषित कर सकता हूं जो मैं cdकमांड के साथ निर्देशिका बदलते समय था ?

उदाहरण के लिए, मैं तैयार हूं /opt/soft/binऔर मैं cdमें /etc/squid3और मैं वापस पहले निर्देशिका के लिए करना चाहते हैं।

जवाबों:


283

आप उपयोग कर सकते हैं

cd -

या आप उपयोग कर सकते हैं

cd $OLDPWD

3
किसी भी विचार क्यों "सीडी -" का उपयोग करते समय निर्देशिका का नाम कंसोल पर मुद्रित होता है?
dtmland 23

4
संभवतः चूंकि पुराने गोले ने वर्तमान निर्देशिका के नाम को संकेत में प्रदर्शित नहीं किया था, इसलिए टाइप करने पर निर्देशिका का नाम देखना उपयोगी था cd -। उदाहरण के लिए जब आप टाइप करते हैं तो cd /usr/localआप जानते हैं कि आप अंदर हैं /usr/loal, लेकिन जब आप टाइप cd -करते हैं तो आपको हमेशा याद नहीं रहता है कि आप किस निर्देशिका से आए हैं। तो यह आपको टाइपिंग से बचाता है cd -; pwd। लेकिन यह सब अटकलें हैं।
राफेल एहरेंस

2
या आप अलियासिंग का उपयोग कर सकते हैं: alias -- -='cd -'तब उपनाम को सेट करें -(4 चार) के बजाय (1 चार) का उपयोग करें cd -। तेज़:D
ADTC

2
मैं इसके बिना कभी कैसे रह सकता था?
वीएसजेडएम

1
@ AndréKuhlmann आप cd -दो बार कर सकते हैं । है cd /; cd /usr; cd -; cd -आप में होना चाहिए /usr। लेकिन शायद मुझे आपका सवाल समझ में आ गया।
राफेल अहरेंस

54

अन्य उत्तर निश्चित रूप से प्रत्यक्ष उत्तर अर्थ में पूर्ण होते हैं। cd -और cd $OLDPWDनिश्चित रूप से इसके लिए मुख्य विकल्प हैं। हालाँकि, मुझे अक्सर लगता है कि वर्कफ़्लो में शामिल होना pushdऔर popdबेहतर तरीके से काम करना।

लंबी कहानी छोटी, यदि आप एक निर्देशिका में आगे बढ़ रहे हैं, जहां आप शुरू करने, उपयोग करने pushd/ वापस करने के अंतिम इरादे के साथ हैं popd

विस्तारित उदाहरण

प्रमुख अंतर आसानी से एक उदाहरण द्वारा दिखाया गया है।

$ cd dir1
$ pushd dir2

इस बिंदु पर, आपके पास एक निर्देशिका स्टैक है जो है dir2, dir1pushdबिना किसी तर्क के साथ चलने से आपको dir1स्टैक के साथ वापस आ जाएगा dir1, dir2popdऐसा ही होगा, लेकिन एक खाली निर्देशिका स्टैक के साथ आपको छोड़ देगा। यह बहुत अलग नहीं है कि आप cd -वर्कफ़्लो के साथ कैसा होगा ।

हालाँकि, अब आप कई बार निर्देशिकाओं को बदल सकते हैं और वापस आ सकते हैं dir1। उदाहरण के लिए,

$ cd dir1
$ pushd dir2
$ cd dir3

यदि आप popdइस बिंदु पर चलते हैं, तो आप वापस चले जाएंगे dir1


2
आप निर्देशिकाओं को स्टैक भी कर सकते हैं, इसलिए बार-बार उपयोग करें pushdऔर वापस पिछले फ़ोल्डर में जाएं popd
बर्नहार्ड

1
निश्चित रूप से। मैंने लगभग एक बड़ा उदाहरण दिया, जिसमें स्टैक की जांच शामिल थी dirs -v, लेकिन मेरे लिए वास्तविकता यह है कि अक्सर सरल मामला यह है कि मैं वास्तव में उपयोग करता हूं। (या इससे भी बदतर, मैं कोशिश करते समय push +2या इसी तरह की एक गलती करता हूं ) इसके अलावा, मैंने सोचा कि किसी को वर्कफ़्लो आज़माने के लिए बच्चे के कदम। :)
जोश बेरी

cdपॉपिंग के बिना स्टैक के शीर्ष पर आप कैसे हैं ?
जॉन डाइटन

18

आपको उपयोग करना चाहिए:

cd ~-

यह cd -निर्देशिका के कष्टप्रद प्रतिध्वन के बिना (वर्तमान में स्वीकृत उत्तर से) के समान है और टाइप करने के लिए आसान है cd "$OLDPWD"या से cd - > /dev/null


2
फ़ाइल को गूंज से पुनर्निर्देशित करना! यह प्रतिभाशाली है !!
राम

2
गूंज नई निर्देशिका को पिछले एक को नहीं दिखाती है। और मैं इसे उपयोगी पाऊंगा, ताकि मैं जानता हूं कि मैं अब कहां हूं, खासकर अगर मैं एक ऐसे खोल में हूं जो केवल वर्तमान निर्देशिका नाम (या कुछ भी नहीं) को शीघ्रता से दिखाता है, और मैं बदलने के लिए बहुत असहनीय हूं तुरंत पूरा रास्ता दिखाने के लिए। बेशक, यदि आपका संकेत पहले से ही पूर्ण पथ दिखाता है, तो गूंज बेमानी और कष्टप्रद होगी। उस स्थिति में, मुझे लगता है कि आप (5 char) के बजाय (1 char) alias -- -='cd "$OLDPWD"'का उपयोग करके प्रयास कर सकते हैं । -cd ~-:)
ADTC

स्रोत और स्पष्टीकरण: unix.stackexchange.com/a/330885/38213 Spoilers, - एक ऑपरेंड है और ~ के पथ एलिस हैं। तो cd ~-/..काम करता है लेकिन cd -/..नहीं करता है!
रे फॉस

16
$ cd - 

पिछली कार्यशील निर्देशिका में बदल जाएगा।


3

आप अपनी '~ / .bashrc' फ़ाइल को संपादित करके और कमांड के लिए एक उपनाम सहित 'cd -' के लिए "एक कुंजी को परिभाषित कर सकते हैं"। उदाहरण के लिए आप इसे जोड़ने के लिए 'सीडीसी' जोड़ सकते हैं - जो आपको अंतिम निर्देशिका में शामिल करने के लिए एक छोटा रास्ता प्रदान करेगा:

alias cdc='cd -'

इस तरह आप बस 'सीडीसी' टाइप करेंगे और यह आपको अपनी अंतिम कार्यशील निर्देशिका में डाल देगा।


5
और जब आप उस सिस्टम का उपयोग करते हैं, जहां कोई अन्य स्थान पर नहीं है, तो आपको किसी भी तरह से भ्रमित न करें। यह हर वर्ण को एक बार में टाइप करने से बचाता है। परेशान भी क्यों?
बजे एक CVn

2
"टर्मिनल में, मैं पिछली निर्देशिका में जाने के लिए एक कुंजी को कैसे परिभाषित कर सकता हूं " मैं कभी भ्रमित नहीं होता। इसका सिर्फ एक शॉर्टकट है, जब आप दूसरे सिस्टम पर होते हैं तो सिर्फ लॉन्ग-हैंड तरीके का इस्तेमाल करते हैं।
अटारी 911

@ अटारी 911 बढ़िया सवाल! यहाँ उत्तर है: stackoverflow.com/questions/4200800 यहाँ मैंने क्या किया है (बाध्य F12): bind '"\e[24~":"\C-k \C-ucd -\n"'(या अधिक अधिमानतः इसे inputrcउत्तर में बताए अनुसार दर्ज करने के लिए स्थानांतरित करें )।
ADTC

1

cd ..फ़ोल्डर के पेड़ में पूर्ववर्ती फ़ोल्डर में जाता है।
cd -उस फ़ोल्डर में जाता है जो वह पहले था। यह आदेश कुछ डिस्ट्रोस (ubuntu 16.04) पर काम नहीं करता था, डेबियन 9 में काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.