होम डायरेक्टरी के बजाय अन्य डायरेक्टरी को डिफॉल्ट कैसे करें


180

मैं एक विंडोज़ मशीन पर विकसित कर रहा हूं। लाइनक्स कमांड लाइन के लिए मुझे एकमात्र जगह Git Bash की आवश्यकता है। समस्या यह है: जब मैं इसे खोलता हूं, तो मैं होम डायरेक्टरी में हूं। मुझे निर्देशिका को अपने कार्यक्षेत्र में बदलना होगा, जैसे:

cd ../../../d/work_space_for_my_company/project/code_source

क्या मैं इसे एक .sh फ़ाइल में लपेट सकता हूँ, इसलिए मुझे अब इसे टाइप करने की आवश्यकता नहीं है? यह सरल होना चाहिए लेकिन मुझे लिनक्स कमांड लाइन के बारे में शून्य ज्ञान है। मैं वास्तव में सराहना कर रहा हूं यदि आप मुझे उस .sh फ़ाइल को बनाने के तरीके के माध्यम से चल सकते हैं।


5
नीचे दिए गए उत्तर इस को स्थायी रूप से ठीक करने के लिए सही हैं, हालांकि इनके बिना भी आपको हर बार इसे हाथ नहीं लगाना चाहिए। Git Bash में एक कमांड हिस्ट्री शामिल है जो सत्रों (विंडोज कंसोल के विपरीत) के बीच बनी रहती है, इसलिए जब भी आप इस कमांड को दोहराना चाहते हैं, तो इसे दोबारा टाइप करने के बजाय, बस Ctrl-r टाइप करें और फिर कमांड का हिस्सा, जैसे। ctrl-r../dऔर कमांड ऊपर आएगा, और फिर टाइप करें। सामान्य तौर पर, कमांड इतिहास का उपयोग करने के तरीके को सीखने में कुछ मिनट का निवेश करें और फिर आप इसे बहुत उपयोग कर रहे होंगे, जैसा कि आप विभिन्न गॉर्ज कमांडों को दोहराते हैं।
स्टीफन होकिंग

FYI करें यहाँ WSL बैश विकल्प है C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(या यदि आप cmder का उपयोग करते हैं cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data) जहां -iतीर कुंजी काम करती है
KCD

जवाबों:


101

बस उस लाइन को "cd.sh" फ़ाइल में लिखें, फिर अपने शेल प्रॉम्प्ट से ऐसा करें:

. ./cd.sh

या आप अपनी $HOME/.bashrcफ़ाइल में एक उपनाम या कार्य बना सकते हैं :

foo() { cd /d/work_space_for_my_company/project/code_source ; }

यदि निर्देशिका नाम में रिक्त स्थान या अन्य शेल मेटाचैकर्स शामिल हैं, तो आपको उद्धरण चिह्नों की आवश्यकता होगी; यदि आवश्यक न हो तो भी उन्हें जोड़ना दुख नहीं होगा:

foo() { cd "/d/Work Space/project/code_source" ; }

(ध्यान दें कि मैंने छोड़ दिया है ../../..; आपको इसकी आवश्यकता नहीं है।)

EDIT: यदि आप एक पंक्ति जोड़ते हैं

foo

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

(नाम fooसिर्फ एक उदाहरण है; आपको अधिक सार्थक नाम चुनना चाहिए।)


5
जैसा कि @orip बताते हैं, आप बस cdअपने .bashrc में कर सकते हैं। लेकिन अगर आप इसे एक फंक्शन बनाते हैं, तो आप बाद में फिर से कमांड का उपयोग कर सकते हैं, जब आप दूसरी निर्देशिका में बदल गए हैं।
कीथ थॉम्पसन

2
"../../ .." समझाने के लिए, आपके द्वारा दी गई कमांड आपकी वर्तमान निर्देशिका के सापेक्ष एक पथ निर्दिष्ट करती है; "../../../d/work_space_for_my_company/project/code_source"आपकी वर्तमान निर्देशिका से तीन स्तर ऊपर जाते हैं (जो होता है $HOME), फिर नीचे "d", फिर नीचे "कार्य ..."। गिट बैश शेल वातावरण में "/d"विंडोज कॉल को संदर्भित किया गया है "D:\"। एक पूर्ण पथ नाम का उपयोग करना "/d/work_space_for_my_company/project/code_source", सरल है और यह निर्भर नहीं करता है कि आपका $HOMEहोना कहां है।
कीथ थॉम्पसन

2
मुझे यह .bashrcफ़ाइल कहां मिल सकती है ?
ptamzz

2
@ptamzz: .bashrcजब आपका खाता सेट किया जाता है तो आम तौर पर आपके होम डायरेक्टरी में एक फ़ाइल बनाई जाएगी। यदि नहीं, तो आप इसे स्वयं बना सकते हैं।
कीथ थॉम्पसन

1
आप "cd.sh" कहाँ पाते हैं? और जब आप घर निर्देशिका कहते हैं। क्या आप वर्तमान ऐप के लिए होम डिअर के बारे में बात कर रहे हैं या ??
वाहबॉ

374

यहां एक अधिक विंडोज-ईश समाधान है: विंडोज शॉर्टकट पर राइट क्लिक करें जो आप गिट बैश लॉन्च करने के लिए उपयोग करते हैं, और गुण क्लिक करें। अपने इच्छित कार्यक्षेत्र पथ पर "प्रारंभ करें" का मान बदलें।

संपादित करें: यह भी जाँचें कि लक्ष्य मान में --cd-to-home विकल्प शामिल नहीं है जैसा कि नीचे टिप्पणी में दिया गया है।


13
इस समाधान के साथ एकमात्र समस्या यह है कि आप होम डाइरेक्टरी के लिए डिफ़ॉल्ट पथ सेट नहीं कर रहे हैं, जिसके साथ एक्सेस किया गया है~
worc

67
इसने मेरे लिए काम किया। इसके अलावा, मुझे स्टार्टअप कमांड में - एलसीडी-टू-होम विकल्प को भी हटाना था।
चिनलॉन्ग

2
यदि आपके पास विंडोज 7 टास्कबार पर शार्टकट है, तो आपको प्रोग्राम पर दो बार राइट क्लिक करना होगा, जैसा कि lifehacker.com/5475752/-
manat

11
सहमत है कि यह सबसे सीधा-सीधा समाधान है, लेकिन लक्ष्य में "- एलसीडी-टू-होम" को शामिल करने के लिए बिल्कुल संशोधन किया जाना चाहिए। उस अंतिम परिवर्तन के बिना, आप हमेशा C: \ Users [नाम] फ़ोल्डर के लिए डिफ़ॉल्ट रहेंगे (जब तक कि आपने अपना सेटअप संशोधित नहीं किया है)।
ज़्यूस 56

2
स्पष्ट करने के लिए, शॉर्टकट में "लक्ष्य" होना चाहिए %WINDIR%\System32\bash.exeऔर "स्टार्ट इन" होना चाहिए C:\Tempया आप जो भी रास्ता चाहते हैं।
डेन्कोडेमेकिन

45

.bashrcहोम निर्देशिका में फ़ाइल में लाइन जोड़ें (यदि मौजूद नहीं है तो फ़ाइल बनाएं):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc

5
मुझे पता है कि मैं पार्टी के लिए सुपर लेट हूं, लेकिन फंक्शन बकवास को रोकने के लिए धन्यवाद! :)
फेलिप जेरार्ड

1
यह एकदम सही था। मेरे पास गया .bashrc.localऔर cd ~/Desktop/repos/;नीचे जोड़ा गया। एक जादू की तरह काम किया! के नीचे बदलने से .bashrcभी काम होगा।
माइकल डिम्मिट

मैंने अभी ~ .Bashrc फ़ाइल ~ पर बनाई और अगली बार जब मैंने git बैश खोला तो उसने शिकायत की कि मेरे पास .bash_profile और दूसरी फ़ाइल नहीं है, इसलिए इसने मेरे लिए उन्हें बनाया है। और गिट बैश को फिर से खोलने के बाद इसने फूलविहीन काम किया!
पीनी चेइनी

स्टार्टअप कमांड (शॉर्टकट प्रॉपर्टीज) में
telebog

38

मैं ConEmu (दृढ़ता से विंडोज पर अनुशंसित) का उपयोग करता हूं जहां मेरे पास गिट बैश शुरू करने के लिए एक कार्य है

यहां छवि विवरण दर्ज करें

नीचे "Startup dir ..." बटन को नोट करें। यह -new_console:d:<path>गिट बैश के स्टार्टअप कमांड में जोड़ता है । आप जहां चाहें, उसे इंगित करें


कस्टम कार्य को साझा करने के लिए धन्यवाद, मैं इसे काम नहीं कर सका। उदाहरण के लिए, Google.com को पिंग करने के बाद, मैं साधारण विंडोज़ कमांड कैसे चला सकता हूं?
इमान मोहम्मदी

1
@ImanMohamadi इस तरह की चीजों के लिए मैं आपके साथ स्क्रिप्ट बनाने के लिए आपके PATH env वैरिएबल st u को p-gGoogle आदि को पिंग करने के लिए cmds निष्पादित कर सकता हूं ...
Juri

23

यह आपकी मदद कर सकता है।

चित्र का वर्णन

  1. Git bash -> संपत्तियों पर राइट क्लिक करें
  2. Shorcut टैब में -> फ़ील्ड में प्रारंभ -> अपना उपयोगकर्ता परिभाषित पथ दर्ज करें
  3. सुनिश्चित करें कि लक्ष्य फ़ील्ड में शामिल नहीं है --go-to-homeया यह आपके होम चर में निर्दिष्ट निर्देशिका में शुरू होता रहेगा

बस।


मैंने कोशिश की है कि यह काम नहीं करता है जब पथ किसी अन्य ड्राइव में होता है जैसे d: \
Ray

विंडोज 10 गैट बैश के लिए उस टैब को नहीं दिखाता है, लेकिन आप इसे कोड की इस छोटी 3 लाइनों का उपयोग करके हैक कर सकते हैं, इसे कुछ ** में सेव कर सकते हैं। बैट फाइल 1. d: 2. cd data 3.git bashयदि आप बैट फाइल पर डबल क्लिक करते हैं तो यह वांछित स्थान पर खुल जाएगा
कृष

1
उस Targetफ़ील्ड को देखें, इसमें पैरामीटर नहीं हैं। डिफ़ॉल्ट रूप -go-to-homeसे इसमें वह कार्य शामिल है जो वहाँ से मिटाना चाहिए।
कुरापिका

1
यह मेरे लिए काम करता है लक्ष्य: "C: \ Program Files \ Git \ git-bash.exe" (महत्वपूर्ण) प्रारंभ: d: / xampp / htdocs /
raftaar1191

1
यह मेरे लिए @ raftaar1191 (मैंने "- LCD-to-home" विकल्प) से समान लक्ष्य के साथ भी काम किया है, और मैंने "start" को "C: \ wamp \ www" में कॉन्फ़िगर किया, बहुत उपयोगी है!
नायफुन

10

मैंने शॉर्टकट आइकन की सेटिंग में "प्रारंभ" को भी केवल बदल दिया है: %HOMEDRIVE%/xampp/htdocs/


9

यह यह मानते हुए कि आप यह चाहते हैं कि हर बार जब आप कमांड लाइन खोलते हैं, तो यह हो सकता है:

echo cd ../../../d/work_space_for_my_company/project/code_source >> ~/.bashrc

अब जब आप खोल खोलते हैं तो यह तीन निर्देशिकाओं को घर से ले जाएगा और कोड_ स्रोत में बदल जाएगा।

यह कोड केवल "cd ..//../../d/work_space_for_my_company/project/code_source" को ".bashrc" नामक फ़ाइल में जोड़ता है। ">>" एक फाइल बनाता है यदि यह मौजूद नहीं है और फिर संलग्न होता है। .Bashrc फ़ाइल स्टार्ट-अप / लॉग-इन समय (यानी लोडिंग मॉड्यूल आदि) पर कमांड चलाने के लिए उपयोगी है।


9

(कृपया नीचे चेतावनी पढ़ें)

विंडोज में ऐसा करने का वास्तव में सरल तरीका (जीआईटी बैश के साथ काम करता है, संभवतः अन्य) होम नामक एक पर्यावरणीय चर बनाने के लिए है जो आपके वांछित होम डायरेक्टरी की ओर इशारा करता है।

  1. मेरे कंप्यूटर पर राइट क्लिक करें, और गुण चुनें
  2. उन्नत सिस्टम सेटिंग्स चुनें (स्थान विंडोज़ संस्करण द्वारा भिन्न होता है)
  3. सिस्टम गुणों के भीतर, उन्नत टैब चुनें
  4. उन्नत टैब पर, पर्यावरण चर (नीचे बटन) चुनें
  5. "सिस्टम वैरिएबल" के तहत यह देखने के लिए जांचें कि क्या आपके पास पहले से ही एक वैरिएबल है जिसे होम कहा जाता है। यदि ऐसा है, तो वैरिएबल नाम को हाइलाइट करके एडिट नाम पर क्लिक करें। नया चर नाम वांछित पथ बनाएं।
  6. यदि गृह पहले से मौजूद नहीं है, तो सिस्टम चर के तहत "नया" पर क्लिक करें और गृह नामक एक नया चर बनाएं जिसका मान वांछित पथ है।

पर्यावरण चर

नोट: यह अन्य चीजों के काम करने के तरीके को बदल सकता है। उदाहरण के लिए, मेरे लिए यह बदल जाता है जहां मेरे .ssh config फाइल लाइव हैं। मेरे मामले में, मैं चाहता था कि मेरा घर U: \ हो, क्योंकि यह मेरा मुख्य स्थान है जिसे मैंने प्रोजेक्ट वर्क और एप्लिकेशन सेटिंग्स (यानी यह वास्तव में मेरा "होम" डायरेक्टरी है) रखा है।

EDIT 23 जून, 2017: यह उत्तर कभी-कभार मिलता है, और मैं लोगों को चेतावनी देना चाहता हूं कि हालांकि यह "काम" हो सकता है, मैं @AnthonyRaymond से सहमत हूं कि यह अनुशंसित नहीं है। यदि आप अन्य चीजों को तोड़ते हैं, तो यह एक अस्थायी सुधार या एक फिक्स का अधिक नहीं है। आपके घर को बदलने से सक्रिय क्षति नहीं होगी (जैसे आपकी हार्ड ड्राइव को हटाना) लेकिन इससे बाद में कपटी गुस्सा पैदा होने की संभावना है। जब आप सड़क पर परेशान करने वाली समस्याएं शुरू करते हैं, तो आपको शायद यह बदलाव याद नहीं होगा ... इसलिए आपको बाद में अपना सिर खुजाने की संभावना है!


मुझे समझ में नहीं आता कि @asalle द्वारा सुझाए गए संपादन (मुख्य रूप से यह सुझाव देते हुए कि आप उपयोगकर्ता सिस्टम चर भी संपादित कर सकते हैं) को Bamsworld fish_ball और greg-449 को अस्वीकार कर दिया गया था, संपादन उचित लग रहा था।
गेनोरमा

यह एक अच्छा विचार होने का एक बहुत विनाशकारी तरीका है। यह बहुत सारे अन्य अनुप्रयोगों और यहां तक ​​कि खिड़कियों को प्रभावित कर सकता है। यह अनुशंसित नहीं है
एंथनी रेमंड

@AnthonyRaymond जैसा कि मैंने नोट किया कि "होम" को बदलने के अन्य परिणाम हो सकते हैं, हालांकि मैं यह नहीं कहूंगा कि यह जरूरी विनाशकारी है। वास्तव में, यह फायदेमंद हो सकता है यदि आप चाहते हैं कि आपका होम एक विशिष्ट स्थान हो या यदि किसी अन्य एप्लिकेशन ने होम को अवांछित स्थान पर सेट किया है। किसी भी घटना में, मुझे लगता है कि यह उत्तर इस बात पर कुछ प्रकाश डालता है कि डिफ़ॉल्ट निर्देशिका कैसे सेट की जाती है।
जीनोरमा

@AnthonyRaymond हालांकि मैं सहमत हूं, कि इस सवाल के संदर्भ में एक विशेष परियोजना (जैसे ../../../d/work_space_for_my_company/project/code_source) के लिए घर की स्थापना एक बुरा विचार है। आम तौर पर बोलते हुए, ऐसे समय होते हैं जब घर को होने की आवश्यकता नहीं होती है/c/Users/[current user name]/
जीनोरामा

यदि आप किसी अन्य स्थान पर इंगित करने के लिए एक विशेष फ़ोल्डर चाहते हैं तो सिमलिंक बनाएं। Technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx हमारे पास यह जानने का कोई तरीका नहीं है कि कौन सा प्रोग्राम होम वैरिएबल का उपयोग करता है, मुझे लगता है कि यह थोड़ा विनाशकारी है।
एंथनी रेमंड

7

Git Bash एप्लिकेशन लिंक पर राइट-क्लिक करें प्रॉपर्टीज पर जाएं और जिस स्थान से आप इसे शुरू करना चाहते हैं, उस स्थान पर स्टार्ट को संशोधित करें।


5

विंडोज 10 में पिन किए गए स्टार्ट मेनू आइटम से

  1. पिन किए गए शॉर्टकट की फ़ाइल लोकेशन खोलें
  2. शॉर्टकट गुण खोलें
    1. --cd-to-homeअर्ग निकालें
    2. अद्यतन Start inपथ
  3. हाल ही में जोड़े गए मेनू के माध्यम से पुन: पिन करें

फ़ाइल स्थान स्क्रीनशॉट खोलें

शॉर्टकट शॉर्टकट स्क्रीनशॉट खोलें

शॉर्टकट शॉर्टकट स्क्रीनशॉट अद्यतन करें

हाल ही में जोड़े गए सेंसशॉट के माध्यम से पिन


ऐसा करने के लिए अन्य सभी उत्तरों के लिए धन्यवाद! विन 10 निर्देश प्रदान करना चाहता था ...


4

खिड़कियों के लिए: इन चरणों का पालन करें-

  1. विंडोज़ होम पर जाएं> "गिट बैश" एप्लिकेशन पर राइट क्लिक करें।
  2. गुण> शार्टकट
  3. इन दो सेटिंग्स को बदलें: (ए) cd-to-homeसे - target (बी) प्रकार फ़ोल्डर पथ जिसे आप "स्टार्ट इन" में गिट से शुरू करना चाहते हैं।

यह मेरे लिए काम :)


3

यदि आप प्रोजेक्ट विकल्प सूची चाहते हैं, जब यू खुला GIT बैश:

  • ppathअपने git प्रोजेक्ट पथ में कोड हेडर में संपादित करें , इस कोड को .bashrc फ़ाइल में डालें और इसे अपने $ होम डायर में कॉपी करें (Win Vista / 7 में यह आमतौर पर c: \ Users \ $ You ) है

।

#!/bin/bash
ppath="/d/-projects/-github"
cd $ppath
unset PROJECTS
PROJECTS+=(".")
i=0

echo
echo -e "projects:\n-------------"

for f in *
do
    if [ -d "$f" ]
    then
        PROJECTS+=("$f")
        echo -e $((++i)) "- \e[1m$f\e[0m"
    fi
done


if [ ${#PROJECTS[@]} -gt 1 ]
then
    echo -ne "\nchoose project: "
    read proj
    case "$proj" in
        [0-`expr ${#PROJECTS[@]} - 1`]) cd "${PROJECTS[proj]}" ;;
        *) echo " wrong choice" ;;
    esac
else
    echo "there is no projects"
fi
unset PROJECTS
  • आप इस फ़ाइल को GIT bash chmod + x .bashrc के अंदर निष्पादन योग्य के रूप में सेट कर सकते हैं (लेकिन इसकी शायद बेमानी है, क्योंकि यह फ़ाइल ntfs फाइल सिस्टम पर संग्रहीत है )

2

जब मैंने अपने कार्य निर्देशिका में सीडी को ~ / .bashrc में डाला तो विंडोज पर मेरे गिट बैश शॉर्टकट की शिकायत हुई

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

तो git ने इसे बनाया .bash_profile:

$ cat ~/.bash_profile
# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

जो नौकरी करता है।

वैकल्पिक रूप से, आप बस .bashrc को फिर से हटा सकते हैं और सीडी कमांड को .bash_profile में डाल सकते हैं:

$ rm ~/.bashrc
$ echo "cd Source/Repos" >~/.bash_profile

$ cat ~/.bash_profile
cd Source/Repos

एक बार जब यह हो जाता है तो आप विंडो को बंद कर सकते हैं और अपने डेस्कटॉप शॉर्टकट का उपयोग करके इसे फिर से खोल सकते हैं और संकेत देगा कि आपका स्थान अब वह है जहां आप इसे चाहते थे - ऐसा लगता है कि यह मेरा मामला है:

Administrator@raptor1 MINGW64 ~/Source/Repos
$

2

यदि आप यह कमांड टाइप करते हैं: echo cd d:/some/path >> ~/.bashrc

को लाइन लगाता cd d:/some/pathहै .bashrc>>अगर यह मौजूद नहीं है एक फ़ाइल बनाता है और फिर जोड़ देता है।


1

यह होना चाहिए cd d:/work_space_for_....

इसके बिना :यह मेरे लिए काम नहीं करता है


1

विंडोज उपयोगकर्ताओं के लिए एक और समाधान होगा कि आप जिस निर्देशिका से शुरुआत करें और उसे वहां से लॉन्च करें, उसके लिए Git Bash.lnk फाइल को कॉपी करें।

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