क्या मैं कुछ अच्छी तरह से निर्देशिकाओं में `सीडी` के लिए आवश्यक टाइपिंग को छोटा कर सकता हूं


11

मैं खुद को एक टर्मिनल खोल रहा हूं और फिर एक ही निर्देशिका में बहुत सी सीडी कर रहा हूं, जिसका रास्ता बहुत लंबा है।

इसका मतलब है कि मैं बहुत कुछ कर रहा हूं और चीजों को तेजी से बढ़ाने के लिए टैब का उपयोग कर रहा हूं।

आईटी बहुत अच्छा होगा यदि मैं इस निर्देशिका के लिए किसी प्रकार का लिंक दे सकता हूं और फिर बस सीडी को दे सकता हूं ताकि मैं जल्दी से गहरे नेस्टेड निर्देशिका में रहूं।

क्या यह संभव है?


1
मेरे पास कई (बैश) स्क्रिप्ट हैं जो छोटे (संबंधित) कार्यों को करने के लिए हैं जैसे कि गिडब प्रोजेक्ट और रनिंग git status। मेरे पास भी कुछ उपनाम हैं .bash_profile। ठीक वही नहीं जो आप पूछ रहे हैं, लेकिन संबंधित है।
कीसर

जवाबों:


24

यहां cdअक्सर जटिल मार्गों से निपटने का तरीका है ।

mkdir ~/Links
ln -s /complexpath/there ~/Links

यह प्रतीकात्मक लिंक बनाएगा

~/Links/there

इस नए प्रयोग करने के लिए Linksकुशलतापूर्वक निर्देशिका, अपनी प्रवेश खोल रहा है तो bash सिर्फ अपने में इस आदेश को शामिल ~/.profile(जो सभी बॉर्न शैली के गोले द्वारा किया जाता है bash, ksh, zsh...):

CDPATH=~/Links:.
export CDPATH

इसका मतलब यह है कि प्रत्येक के लिए cd, आपका शेल स्थानीय निर्देशिका खोजने के लिए 2 निर्देशिकाओं के भीतर दिखेगा:

~/Links
.

आपको इसे परीक्षण करने के लिए सत्र को पुनः आरंभ करने की आवश्यकता नहीं होगी, बस चलाएं:

. ~/.profile

जिसका मतलब है बस मेरी पढ़ें ~/.profile। ( ~/.bashrcजब आप इसे नहीं बदलते हैं तो आपको इसे उसी वैरिएबल इनिशियलाइज़ेशन को दोहराने की आवश्यकता नहीं होगी, क्योंकि आपको इसे अपने पास नहीं रखना होगा।)

एक बार जब आप इसका परीक्षण कर लेते हैं, तो आप अपने सत्र को फिर से शुरू कर पाएंगे;)।

अब से, हर बार जब आप जाना चाहते हैं thereतो आपको टाइप करना होगा:

cd there

यह सबसे सुरुचिपूर्ण सामान्य समाधान है जिसे मैंने देखा है। मैं आम तौर पर (aliasing की तरह आम गंतव्यों के लिए उपनाम बनाने cdoraके लिए cd $ORACLE_HOMEऔर इस तरह ...)
bmike

खोजक इंटरफेस के माध्यम से एक साधारण समकक्ष से किसी को भी दिलचस्पी होगी?
डेन

11

उपनाम को परिभाषित करना एक लंबी कमांड के लिए संक्षिप्त नाम रखने का एक बहुत आसान तरीका है। एक बार आपके पास अपनी एलियास का अधिकार होने के बाद, आप अपनी .bashrc फ़ाइल (या अन्य स्टार्टअप फ़ाइल) में एक सेक्शन बना सकते हैं ताकि आपको अपने द्वारा शुरू किए गए प्रत्येक नए शेल के लिए इन एलियास को फिर से टाइप न करना पड़े:

.bashrc:

alias ws4='ssh qsv-rhws4'
alias httpdlog='cd /var/log/httpd/'
alias EC2='ssh -i BMTestEC2.pem ec2-user@xxxxxxxx.compute.amazonaws.com'

आदि।

लॉग आउट करें और वापस (या बस चलाएं . ~/.bashrc) और अब आप बस टाइप कर सकते हैं httpdlogऔर यह सीडी परफॉर्म करता है। या ws4यह वास्तव में ssh कमांड आदि का प्रदर्शन करता है।

यह (लिंक की एक बड़ी मात्रा) बनाने की आवश्यकता को हटाता है जिससे आपके घर की निर्देशिका भी गड़बड़ की तरह दिखाई देगी।


10

Autojump या z का उपयोग करके देखें ।

दोनों में से किसी एक को स्थापित करने के बाद, आप cdसामान्य की तरह आस-पास रहते हैं और वे आपकी सबसे अधिक देखी गई निर्देशिकाओं को सीखते हैं और आपको केवल पथ का एक भाग लिखकर उनके पास जाने की अनुमति देते हैं:

$ cd /very/long/path/foobar
$ cd
$ z foobar
$ echo $PWD
/very/long/path/foobar

मुझे दोनों में से जेड पसंद है।


Autojump लेकिन 'z' स्क्रिप्ट चट्टानों के बारे में पता नहीं है!
क्रिश

7

मैं fasd की अत्यधिक अनुशंसा करता हूं जो कि autojump और z के समान है लेकिन बेहतर IMHO है। वेबसाइट से:

Fasd ("तेज" के समान उच्चारण) एक कमांड-लाइन उत्पादकता बूस्टर है। Fasd POSIX गोले के लिए फ़ाइलों और निर्देशिकाओं के लिए त्वरित पहुँच प्रदान करता है। यह Autojump, z और v जैसे उपकरणों से प्रेरित है। Fasd आपके द्वारा एक्सेस की गई फ़ाइलों और निर्देशिकाओं का ट्रैक रखता है, ताकि आप उन्हें कमांड लाइन में जल्दी से संदर्भित कर सकें।

Fasd नाम डिफ़ॉल्ट रूप से सुझाए गए उपनाम f (files), a (फ़ाइलें / निर्देशिका), s (शो / खोज / चयन), d (निर्देशिका) से आता है।

Fasd "फ्रीक्वेंसी", यानी "फ़्रीक्वेंसी" और "रीसेंसी" दोनों के द्वारा फाइलों और निर्देशिकाओं को रैंक करता है। "फ्रीसीेंसी" शब्द पहले मोज़िला द्वारा गढ़ा गया था और फ़ायरफ़ॉक्स (लिंक) में इस्तेमाल किया गया था।


4

वैकल्पिक रूप से आप एक उपनाम बना सकते हैं। निम्नलिखित को कुछ इस तरह फेंक दें .bashrc या .aliases

alias shortcut='cd ~/path/to/deep/deep/deep/directory/'

फिर सुनिश्चित करें कि यह जो भी फ़ाइल है वह sourced है। मेरे उपनाम source ~/.bashrc


2

एक विशेष निर्देशिका या दो के लिए सुविधा सिमिलिंक जोड़ना ठीक है, लेकिन बहुत जल्दी इसे प्रबंधित करने के लिए दर्द हो जाता है। एक बेहतर समाधान पर्यावरण चरCDPATH का उपयोग करना है ,bash इस उद्देश्य के लिए और अन्य गोले उपलब्ध हैं ।

CDPATHPATHनिर्देशिका नाम की तलाश के लिए स्थानों की एक बृहदान्त्र-पृथक सूची (जैसे ) है। इसमें निरपेक्ष और सापेक्ष दोनों प्रकार के नाम शामिल हो सकते हैं। मेरे पास मेरा कुछ करने के लिए सेट है export CDPATH=".:..:$HOME/work/repos:$HOME/projects:<etc>"

इस सेट अप के साथ, मैं cd pdftools कहीं से भी टाइप कर सकता हूं और यह मुझे ले जाएगा ~/projects/pdftools। (एक सिमलिंक के साथ, मैं टाइप करने के लिए होगा cd ~/pdftoolsअगर मैं अपने घर निर्देशिका में नहीं था।) मैं भी निदेशिकाओं में शॉर्टकट कर सकते हैं: cd pdftools/bin

..मेरे में CDPATHकी सुविधा देता है मुझे टाइप cd sisterdirकरने के बजाय cd ../sisterdir, आदि जैसा कि आप उम्मीद कर सकते हैं, जब मैं नई निर्देशिका कहीं भी में बना CDPATHतो वे अपने आप के द्वारा पाया जा जाएगा cd- नई सिमलिंक या अन्य नाम बना करने की कोई जरूरत।

यदि आप bash_completionडिबियन सिस्टम के साथ वितरित फ़ाइल का उपयोग करते हैं , उदाहरण के लिए, यह सुविधा और भी अच्छी हो जाती है । यह मेरे ओएस एक्स बॉक्स के साथ नहीं आया था, इसलिए मैंने एक प्रति प्राप्त की और यह ठीक काम करता है। (के साथ जाओ brew, या बस से इसे मैन्युअल रूप से डाउनलोड करने के लिए यहाँ है।) इस फ़ाइल कमांडलाइन पूरा करने संवर्द्धन को परिभाषित करता है, ताकि मैं टाइप कर सकते हैं cd pdf<TAB>और pdftoolsनिर्देशिका पाया और से विस्तार किया जाता है कहीं भी पर CDPATH


1

ज़रूर: एक प्रतीकात्मक लिंक बनाएँ

ln -s /some/really/long/path/to/somewhere/ ~/shortcut
cd ~/shortcut

1

मुझे आसानी से मक्खी पर "निर्देशिकाओं के बुकमार्क" बनाने के लिए बशमार्क का उपयोग करना पसंद है।

रीडमी को यहां देखें: https://github.com/huyng/bashmark

नोट: आपको बैशमार्क की थ्री-स्टेप इंस्टॉलेशन प्रक्रिया का पालन करने के लिए git इंस्टॉल करना होगा: http://git-scm.com/download/mac

सौभाग्य!


1

वैकल्पिक रूप से आप मछली के खोल को स्थापित करने का भी प्रयास कर सकते हैं।

http://fishshell.com/

यह आदेशों के लिए उत्कृष्ट भविष्यवाणी है। यह समझदारी से आपको केस को बिना किसी पेंच के असंवेदनशील बनाने की सुविधा देता है।

मछलियों का नकारात्मक पक्ष यह है कि इसकी अपनी स्क्रिप्टिंग भाषा है और वे बैश नहीं हैं।


1

मैं जो कुछ भी करता हूं वह "सीडी" टाइप करता है और फिर फाइंडर से टर्मिनल में फोल्डर को खींचता है जो पूरे रास्ते में चिपकता है। शायद बहुत सुरुचिपूर्ण नहीं है, लेकिन सभी फ़ोल्डर बनाम कुछ निर्धारित शॉर्टकट के लिए काम करता है?

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