วิธีการเริ่มต้นไดเรกทอรีอื่นแทนไดเรกทอรีบ้าน


180

ฉันกำลังพัฒนาบนเครื่องที่ใช้ windows ที่เดียวที่ฉันต้องการสำหรับบรรทัดคำสั่ง linux คือ Git Bash ปัญหาคือ: เมื่อฉันเปิดมันฉันอยู่ในไดเรกทอรีบ้าน ฉันต้องเปลี่ยนไดเรกทอรีเป็นพื้นที่ทำงานของฉันเช่น:

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

ฉันสามารถรวมไฟล์นี้เป็นไฟล์. sh ดังนั้นฉันไม่ต้องพิมพ์ด้วยมืออีกต่อไปหรือไม่ ควรจะง่าย แต่ฉันไม่มีความรู้เกี่ยวกับบรรทัดคำสั่ง Linux ฉันชื่นชมจริงๆถ้าคุณสามารถแนะนำวิธีการสร้างไฟล์. sh


5
คำตอบด้านล่างนี้เหมาะสำหรับการแก้ไขอย่างถาวรอย่างไรก็ตามแม้ว่าจะไม่มีสิ่งเหล่านี้คุณก็ไม่ควรทำการคัดพิมพ์นี้ทุกครั้ง Git Bash มีประวัติคำสั่งที่ยังคงอยู่ระหว่างเซสชัน (ต่างจากคอนโซล Windows) ดังนั้นเมื่อใดก็ตามที่คุณต้องการทำซ้ำคำสั่งนี้แทนที่จะพิมพ์อีกครั้งเพียงแค่พิมพ์ Ctrl-r จากนั้นเป็นส่วนหนึ่งของคำสั่งเช่น ctrl-r../dและคำสั่งจะเกิดขึ้นแล้วพิมพ์ enter โดยทั่วไปใช้เวลาไม่กี่นาทีในการเรียนรู้วิธีการใช้ประวัติคำสั่งแล้วคุณจะใช้มันอย่างมากในขณะที่คุณทำซ้ำคำสั่ง git ต่างๆ
Stephen Hosking

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" ; }

(โปรดทราบว่าฉันข้ามไป../../..คุณไม่จำเป็นต้องใช้)

แก้ไข: หากคุณเพิ่มบรรทัด

foo

ที่คุณ.bashrcหลังจากนิยามฟังก์ชันที่เปลือกของคุณจะเริ่มต้นในไดเรกทอรีที่ หรือคุณสามารถใช้cdคำสั่งโดยตรงในของคุณ.bashrcหากคุณไม่จำเป็นต้องใช้ฟังก์ชันในภายหลัง

(ชื่อfooเป็นเพียงตัวอย่างคุณควรเลือกชื่อที่มีความหมายมากกว่านี้)


5
@orip ชี้ให้เห็นว่าคุณอาจทำเช่นนั้นcdใน. bashrc ของคุณ แต่ถ้าคุณทำให้มันเป็นฟังก์ชั่นคุณสามารถใช้คำสั่งอีกครั้งในภายหลังหลังจากที่คุณเปลี่ยนเป็นไดเรกทอรีอื่น
Keith Thompson

2
หากต้องการอธิบาย "../../ .. " คำสั่งที่คุณให้จะระบุเส้นทางที่สัมพันธ์กับไดเรกทอรีปัจจุบันของคุณ "../../../d/work_space_for_my_company/project/code_source"เพิ่มขึ้นสามระดับจากไดเรกทอรีปัจจุบันของคุณ (ซึ่งเกิดขึ้น$HOME) จากนั้นลงไปที่ "d" จากนั้นลงไปที่ "ทำงาน ... " สภาพแวดล้อมเปลือกคอมไพล์ทุบตีได้หมายถึงสิ่งที่สายของ"/d" Windows "D:\"การใช้ชื่อพา ธ สัมบูรณ์"/d/work_space_for_my_company/project/code_source"นั้นง่ายกว่าและไม่ขึ้นอยู่กับว่า$HOMEเกิดอะไรขึ้น
Keith Thompson

2
ฉันจะหา.bashrcไฟล์นี้ได้ที่ไหน
ptamzz

2
@ptamzz: โดยปกติ.bashrcไฟล์จะถูกสร้างในโฮมไดเร็กตอรี่ของคุณเมื่อตั้งค่าบัญชีของคุณแล้ว ถ้าไม่คุณสามารถสร้างมันเอง
Keith Thompson

1
คุณพบ "cd.sh" ที่ไหน และเมื่อคุณพูดถึงโฮมไดเร็กตอรี่ คุณกำลังพูดถึง dir บ้านสำหรับแอพปัจจุบันหรือ?
WowBow

374

นี่คือทางออกเพิ่มเติมสำหรับ Windows-ish: คลิกขวาบนทางลัด Windows ที่คุณใช้เพื่อเรียกใช้ git bash และคลิก Properties เปลี่ยนค่าของ "เริ่มต้นใน" เป็นเส้นทางพื้นที่ทำงานที่คุณต้องการ

แก้ไข: ตรวจสอบด้วยว่าค่าเป้าหมายไม่รวมตัวเลือก --cd-to-home ดังที่ระบุไว้ในความคิดเห็นด้านล่าง


13
ปัญหาเดียวของการแก้ปัญหานี้คือคุณไม่ได้ตั้งค่าพา ธ เริ่มต้นสำหรับโฮมได~
เร็ก

67
สิ่งนี้ใช้ได้สำหรับฉัน นอกจากนี้ฉันยังต้องลบตัวเลือก --cd-to-home ในคำสั่งเริ่มต้น
ChinLoong

2
ในกรณีที่คุณมีทางลัดที่ถูกตรึงไว้บนทาสก์บาร์ของ Windows 7 คุณจะต้องคลิกขวาสองครั้งที่โปรแกรมตามที่แนะนำโดยlifehacker.com/5475752/…
manat

11
ยอมรับว่านี่เป็นทางออกที่ตรงไปตรงมาที่สุด แต่ควรแก้ไขอย่างแน่นอนเพื่อรวมการลบ "--cd-to-home" ในเป้าหมาย หากไม่มีการเปลี่ยนแปลงครั้งล่าสุดคุณจะเริ่มต้นที่โฟลเดอร์ C: \ Users [ชื่อ] (เว้นแต่คุณจะแก้ไขการตั้งค่าของคุณ)
Zeus56

2
หากต้องการชี้แจงในทางลัดควรมี "เป้าหมาย" %WINDIR%\System32\bash.exeและ "เริ่มต้นใน" ควรเป็นC:\Tempหรือเส้นทางที่คุณต้องการ
demoncodemonkey

45

เพิ่มบรรทัดลงใน.bashrcไฟล์ในโฮมไดเร็กทอรี (สร้างไฟล์หากไม่มีอยู่):

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

5
ฉันรู้ว่าฉันสายไปงานเลี้ยง แต่ขอบคุณที่หยุดฟังก์ชั่นไร้สาระ! :)
เฟลิเป้เจอราร์ด

1
มันสมบูรณ์แบบ ไปที่ของฉัน.bashrc.localและเพิ่มcd ~/Desktop/repos/;ไปที่ด้านล่าง ทำงานเหมือนจับใจ! เปลี่ยนด้านล่างของ .bashrcก็จะทำงาน
Michael Dimmitt

ฉันเพิ่งสร้างไฟล์. bashrc ที่ ~ และครั้งต่อไปที่ฉันเปิดคอมไพล์ Bash มันบ่นว่าฉันไม่มี. bash_profile และไฟล์อื่นดังนั้นมันจึงสร้างไฟล์ให้ฉัน และหลังจากเปิดคอมไพล์ Bash มันก็ทำงานไร้ดอกไม้!
Pini Cheyni

ลบตัวเลือก --cd-to-home ในคำสั่งเริ่มต้น (คุณสมบัติทางลัด)
telebog

38

ฉันใช้ConEmu (แนะนำอย่างยิ่งบน Windows)ที่ฉันมีงานสำหรับเริ่ม Git Bash เช่น

ป้อนคำอธิบายรูปภาพที่นี่

สังเกตปุ่ม "เริ่มต้น dir ... " ที่ด้านล่าง มันเพิ่ม-new_console:d:<path>คำสั่งเริ่มต้นของ Git Bash ทำให้ชี้ไปที่ใดก็ได้ที่คุณต้องการ


ขอบคุณที่แบ่งปันงานที่กำหนดเองฉันไม่สามารถทำงานได้ ฉันจะรันคำสั่ง windows อย่างง่ายหลังจากนั้นเช่น pinging Google.com เป็นต้น
Iman Mohamadi

1
@ImanMohamadi สำหรับสิ่งต่าง ๆ เช่นที่ฉันอยากจะสร้างสคริปต์กับคุณเพิ่มตัวแปร env ของคุณในเส้นทางที่คุณสามารถดำเนินการ cmds เช่นp-gpinging google ฯลฯ ...
Juri

23

สิ่งนี้อาจช่วยคุณได้

คำอธิบายภาพ

  1. คลิกขวาที่คุณสมบัติ git bash ->
  2. ในแท็บ Shorcut -> เริ่มในฟิลด์ -> ป้อนเส้นทางที่ผู้ใช้กำหนด
  3. ตรวจสอบให้แน่ใจว่าฟิลด์เป้าหมายไม่รวมอยู่--go-to-homeหรือจะเริ่มในไดเรกทอรีที่ระบุในตัวแปร HOME ของคุณ

แค่นั้นแหละ.


ฉันพยายาม แต่มันไม่ทำงานเมื่อเส้นทางอยู่ในไดรฟ์อื่นเช่น d: \ projects \ test
Ray

Windows 10 ไม่แสดงแท็บนั้นสำหรับ gash bash แต่คุณสามารถแฮ็คมันโดยใช้โค้ดขนาดเล็ก 3 บรรทัดบันทึกไว้ในไฟล์ **. bat 1. d: 2. cd data 3.git bashถ้าคุณดับเบิลคลิกไฟล์ bat จากนั้นมันจะเปิดในตำแหน่งที่ต้องการ
Krish

1
ดูTargetฟิลด์นั้นมันไม่มีพารามิเตอร์ โดยค่าเริ่มต้นประกอบด้วย-go-to-homeสิ่งที่ต้องลบจากที่นั่นไปยังที่ใช้งานได้
Kurapika

1
มันใช้งานได้สำหรับฉันเป้าหมาย: "C: \ Program Files \ Git \ git-bash.exe" (สำคัญ) เริ่มต้นใน: d: / xampp / htdocs /
raftaar1191

1
มันใช้งานได้สำหรับฉันด้วยเป้าหมายเดียวกันมากกว่า @ raftaar1191 (ฉันลบตัวเลือก "--cd-to-home") และฉันกำหนดค่า "เริ่มต้นใน" บรรทัดเป็น "C: \ wamp \ www" มีประโยชน์มาก!
nayfun


9

สิ่งนี้จะทำโดยสมมติว่าคุณต้องการให้สิ่งนี้เกิดขึ้นทุกครั้งที่คุณเปิดบรรทัดคำสั่ง:

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

ตอนนี้เมื่อคุณเปิดเชลล์มันจะเลื่อนขึ้นสามไดเรกทอรีจากที่บ้านและเปลี่ยนเป็น code_source

รหัสนี้จะต่อท้ายบรรทัด "cd ../../../d/work_space_for_my_company/project/code_source" ไปยังไฟล์ชื่อ ".bashrc" ">>" สร้างไฟล์หากไม่มีอยู่แล้วต่อท้าย ไฟล์. bashrc มีประโยชน์สำหรับการเรียกใช้คำสั่งในเวลาที่เริ่มต้น / เข้าสู่ระบบ (เช่นการโหลดโมดูลเป็นต้น)


9

(โปรดอ่านคำเตือนด้านล่าง)

วิธีที่ง่ายจริงๆในการทำเช่นนี้ใน Windows (ทำงานกับ git bash หรืออื่น ๆ ) คือการสร้างตัวแปรสภาพแวดล้อมที่เรียกว่าหน้าแรกที่ชี้ไปยังไดเรกทอรีบ้านที่คุณต้องการ

  1. คลิกขวาที่คอมพิวเตอร์ของฉันและเลือกคุณสมบัติ
  2. เลือกการตั้งค่าระบบขั้นสูง (ตำแหน่งแตกต่างกันไปตามรุ่นของ Windows)
  3. ภายในคุณสมบัติของระบบเลือกแท็บขั้นสูง
  4. บนแท็บขั้นสูงเลือกตัวแปรด้านสิ่งแวดล้อม (ปุ่มด้านล่าง)
  5. ใต้ "ตัวแปรระบบ" ให้ตรวจสอบว่าคุณมีตัวแปรชื่อ HOME อยู่แล้ว หากเป็นเช่นนั้นให้แก้ไขตัวแปรนั้นโดยเน้นชื่อตัวแปรแล้วคลิกแก้ไข ทำให้ชื่อตัวแปรใหม่เป็นเส้นทางที่ต้องการ
  6. หาก HOME ไม่มีอยู่ให้คลิก "ใหม่" ภายใต้ตัวแปรระบบและสร้างตัวแปรใหม่ที่ชื่อว่า HOME ซึ่งมีค่าเป็นเส้นทางที่ต้องการ

ตัวแปรสภาพแวดล้อม

หมายเหตุ: สิ่งนี้อาจเปลี่ยนวิธีการทำงานของสิ่งอื่น ๆ ตัวอย่างเช่นสำหรับฉันมันจะเปลี่ยนที่ไฟล์ config. ssh ของฉันมีชีวิตอยู่ ในกรณีของฉันฉันต้องการให้บ้านของฉันเป็น U: \, เพราะนั่นคือสถานที่หลักของฉันที่ฉันใส่งานโครงการและการตั้งค่าแอปพลิเคชัน (นั่นคือไดเรกทอรี "บ้าน" ของฉัน)

แก้ไข 23 มิถุนายน 2017: คำตอบนี้ยังคงได้รับ upvotes เป็นครั้งคราวและฉันต้องการที่จะเตือนคนว่าแม้ว่านี้อาจ "ทำงาน" ฉันเห็นด้วยกับ @AththonyRaymond ที่ไม่แนะนำ นี่คือการแก้ไขชั่วคราวมากกว่าหรือการแก้ไขหากคุณไม่สนใจว่าสิ่งอื่น ๆ แตกหัก การเปลี่ยนที่อยู่อาศัยของคุณจะไม่ทำให้เกิดความเสียหาย (เช่นการลบฮาร์ดไดรฟ์ของคุณ) แต่มีแนวโน้มที่จะทำให้เกิดความรำคาญร้ายกาจในภายหลัง เมื่อคุณเริ่มมีปัญหาที่น่ารำคาญไปตามถนนคุณอาจจำการเปลี่ยนแปลงนี้ไม่ได้ ... ดังนั้นคุณอาจจะเกาหัวในภายหลัง!


ฉันไม่เข้าใจว่าทำไมการแก้ไขที่แนะนำโดย @asalle (ส่วนใหญ่แนะนำว่าคุณสามารถแก้ไขตัวแปรระบบผู้ใช้) ได้ถูกปฏิเสธ Bamsworld fish_ball และ greg-449 การแก้ไขดูเหมือนสมเหตุสมผล
geneorama

นี่เป็นวิธีการทำลายล้างที่มากเกินไปที่จะเป็นความคิดที่ดี มันสามารถส่งผลกระทบต่อแอพพลิเคชั่นอื่น ๆ และหน้าต่างได้ ไม่แนะนำ
Anthony Raymond

@AnthonyRaymond ตามที่ฉันสังเกตว่าการเปลี่ยน "HOME" อาจมีผลกระทบอื่น ๆ ได้ แต่ฉันจะไม่พูดว่ามันเป็นการทำลายล้าง ในความเป็นจริงมันอาจเป็นประโยชน์หากคุณต้องการให้บ้านของคุณเป็นสถานที่เฉพาะหรือถ้ามีแอปพลิเคชันอื่นตั้งค่า HOME เป็นสถานที่ที่ไม่ต้องการ ในกรณีใด ๆ ฉันคิดว่าคำตอบนี้ให้ความกระจ่างเกี่ยวกับวิธีการตั้งค่าไดเรกทอรีเริ่มต้น
geneorama

@AnthonyRaymond แม้ว่าฉันจะเห็นด้วยว่าในบริบทของคำถามนี้ทำให้บ้านเป็นโครงการเฉพาะ (เช่น../../../d/work_space_for_my_company/project/code_source) เป็นแนวคิดที่ไม่ดี แม้ว่าโดยทั่วไปจะมีบางครั้งที่หน้าแรกไม่จำเป็นต้องเป็น/c/Users/[current user name]/
genorama

หากคุณต้องการให้โฟลเดอร์พิเศษชี้ไปที่ตำแหน่งอื่นให้สร้าง symlink technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspxเราไม่มีทางรู้ว่าโปรแกรมใดที่ใช้ตัวแปร HOME, ฉันรู้สึกว่ามันเป็นการทำลายล้างเล็กน้อย
Anthony Raymond

7

คลิกขวาที่ลิงก์แอปพลิเคชัน Git Bash ไปที่คุณสมบัติและแก้ไขตำแหน่งเริ่มต้นในตำแหน่งที่คุณต้องการให้เริ่ม


5

จากรายการเมนูเริ่มตรึงในWindows 10

  1. เปิดตำแหน่งไฟล์ของทางลัดที่ปักหมุด
  2. เปิดคุณสมบัติทางลัด
    1. ลบ--cd-to-homeARG
    2. อัปเดตStart inพา ธ
  3. ปักหมุดใหม่เพื่อเริ่มเมนูผ่านทางที่เพิ่งเพิ่มเข้าไป

เปิดภาพหน้าจอที่ตั้งไฟล์

เปิดภาพหน้าจอทางลัดที่เหมาะสม

อัปเดตภาพหน้าจอทางลัดที่เหมาะสม

ปักหมุดผ่าน screnshot ที่เพิ่มล่าสุด


ขอบคุณคำตอบอื่น ๆ ทั้งหมดสำหรับวิธีการทำเช่นนี้! ต้องการให้คำแนะนำใน Win 10 ...


4

สำหรับ windows: ทำตามขั้นตอนเหล่านี้ -

  1. ไปที่ windows home> คลิกขวาที่แอปพลิเคชั่น "Git Bash"
  2. คุณสมบัติ> ทางลัด
  3. เปลี่ยนการตั้งค่าทั้งสองนี้: (a) ลบ - cd-to-homeจากtarget (b) พิมพ์เส้นทางโฟลเดอร์ที่คุณต้องการเริ่มด้วย git ใน "Start in"

สิ่งนี้ได้ผลกับฉัน :)


3

หากคุณต้องการให้มีรายการตัวเลือกโครงการเมื่อคุณเปิด bash GIT:

  • แก้ไขppathในส่วนหัวของรหัสไปยังเส้นทางโครงการ git ของคุณใส่รหัสนี้ลงในไฟล์. bashrcและคัดลอกลงใน$ HOME dir ของคุณ(ใน 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

ทางลัด Git Bash ของฉันบน Windows บ่นเมื่อฉันใส่แผ่นซีดีลงในไดเรกทอรีงานของฉันลงใน ~ / .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 อีกครั้งและวางคำสั่ง cd ลงใน. 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

อีกวิธีสำหรับผู้ใช้Windowsคือการคัดลอกไฟล์ Git Bash.lnk ไปยังไดเรกทอรีที่คุณต้องการเริ่มต้นและเปิดใช้จากที่นั่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.