ฉันจะเปลี่ยนไดเรกทอรีเริ่มต้นเริ่มต้นใน Cygwin ได้อย่างไร


36

เมื่อใดก็ตามที่ฉันเริ่ม cygwin ฉันต้อง cd หลายระดับลงในไดเรกทอรีเดียวที่ฉันสนใจเมื่อใช้ cygwin

ฉันจะให้ cygwin เริ่มต้นในไดเรกทอรีนี้โดยค่าเริ่มต้นได้ ... เช่นทุกครั้งที่ฉันเริ่ม Cygwin มันจะอยู่ในไดเรกทอรีนั้นแล้ว

ฉันพบบางสิ่งที่อาจเป็นหรือใกล้เคียง แต่ฉันไม่เข้าใจและไม่มีผลลัพธ์เมื่อฉันค้นหาคำเหล่านี้ (n00b) ความช่วยเหลือใด ๆ จะดีมาก!


เคล็ดลับเล็ก ๆ น้อย ๆ : การใช้ cygwin คุณไม่จำเป็นต้อง cd หลาย ๆ ครั้ง - คุณสามารถทำได้ด้วยคำสั่งเดียว (คำแนะนำจะยังคงปรากฏสำหรับไดเรกทอรีย่อย)
บรรทัด

คำตอบ:


48

เพียงเพิ่ม

cd /path/to/directory/you/care/about

ที่ด้านล่างของไฟล์ ~ / .bashrc ของคุณ


1
โดยที่ไฟล์ ~ / .bashrc ในการติดตั้ง windows
Erdem Ece

4
มันขึ้นอยู่กับวิธีการที่คุณติดตั้ง Cygwin แต่เส้นทาง Windows เพื่อไดเรกทอรีบ้าน Cygwin ของคุณจะเป็นC:\cygwin\home\%USERNAME%ซึ่งจะทำให้เส้นทาง Windows ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrcเพื่อ
garyjohn

ถ้าไดเร็กตอรี่ dafault home เป็นไดเร็กตอรี่ที่ฉันไม่ต้องการใส่ไฟล์ใด ๆ
อาร์ตูโร

@Arturo ฉันคิดว่าคุณสับสนสองสิ่ง - ไดเรกทอรีบ้านของคุณและไดเรกทอรีบ้าน Cygwin ไฟล์. bashrcมีอยู่ถ้าคุณติดตั้ง Cygwin
บรรทัด

3

กำหนด "start cygwin" หรือไม่ คุณสามารถเรียกใช้เซิร์ฟเวอร์ cygwin เมื่อคุณเพิ่มพลังให้เครื่อง แต่ฉันคิดว่านั่นไม่ใช่สิ่งที่คุณหมายถึง

หากคุณหมายถึงจบลงในโฟลเดอร์เฉพาะทุกครั้งที่คุณเปิดเชลล์พรอมต์คุณสามารถใส่มันไว้ใน $ HOME / .bashrc ของคุณ

แก้ไข $ HOME / .bashrc ของคุณโดยใช้เครื่องมือแก้ไข cygwin (ที่ใช้ปลายบรรทัด UNIX) เพิ่มบรรทัด

cd /whatever/directory/you/want

หากคุณไปที่ไดเรกทอรีนี้อย่างต่อเนื่องคุณน่าจะสร้างชื่อแทนได้ดีกว่า

ใน $ HOME / .bashrc ของคุณให้ใส่:

alias GT='cd /whatever/directory/you/want'

เรียกมันว่าอะไรก็ได้ที่คุณต้องการ ฉันเพิ่งใช้ GT เพื่อ "ไปที่นั่น" และฉันพิมพ์ใหญ่เพราะมันทำให้ง่ายต่อการแยกจากคำสั่งในตัวซึ่งไม่เคยพิมพ์ใหญ่



0

สคริปต์หลาม

!! ก่อนการใช้งานเพิ่ม. bashrc สตริงใด ๆ ไปยังจุดสิ้นสุด !!

ใช้ name_script.py c:\path

path_bachrc - เส้นทางไปยัง. bashrc

cmd - เส้นทางไปยัง cygwin.bat

#***********************************************#
#   gangelXXX@gmail.com                         #
#***********************************************#
import argparse
import subprocess
import os

path_bachrc = 'c:/PP/cygwin/home/adm/.bashrc'
cmd = 'c:\PP\cygwin\Cygwin.bat'

def delEndLineFromFile(filename):
    with open(filename, 'r') as f:
        aList = f.readlines()

    bList = aList[0:-1]

    with open(filename, 'w') as fd:
        fd.writelines(bList)


parser = argparse.ArgumentParser()
parser.add_argument("newPath", type=str, help="New path in .bachrc cygwin")
args = parser.parse_args();

delEndLineFromFile(path_bachrc);

p = args.newPath;
pNew = 'cd /cygdrive/' + p[:1] + p[2:].replace('\\', '/')
print(pNew)

with open(path_bachrc, 'a') as f:
    f.write(pNew)

PIPE = subprocess.PIPE
p = subprocess.Popen(cmd, shell = True)

2
กรุณาอธิบาย.
Roney Michael

สคริปต์ python ใช้ name_script.py c: \ path \
user236976

path_bachrc - เส้นทางไปยัง. bashrc
user236976

cmd - เส้นทางไปยัง cygwin.bat
user236976

0

โซลูชันนี้ไม่ต้องการการแก้ไข. bashrc:

ด้านล่างนี้เป็นตัวอย่างข้อมูลจากเอกสารอย่างเป็นทางการใน mkpasswd:

ตัวอย่างเช่นคำสั่งนี้:

ตัวอย่างที่ 3.11 การใช้รูทโฮมสำรอง

$ mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

จะวางไดเรกทอรีหลักของผู้ใช้ภายในลงในไดเรกทอรี 'โปรไฟล์' ของ Windows

(ตอบคัดลอกมาจากคำถามที่คล้ายกันในstackoverflowเพราะฉันชอบวิธีนี้มากกว่าที่นี่)

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