ฉันจะกำจัดคำนำหน้าของ Cygwin / cygdrive ในทุกเส้นทางได้อย่างไร


36

ฉันเปลี่ยนมาใช้ Cygwin จาก bash shell ที่มาพร้อมกับ Git สำหรับ Windows และพบปัญหาแปลก ๆ มีคนคิดว่าเป็นความคิดที่ดีที่จะเพิ่ม/cygdrive/ในทุกเส้นทางในขณะที่ฉันคิดว่ามันเป็นความคิดที่น่าเกลียดอย่างน่ากลัว ฉันสามารถระบุได้ว่าฉันสามารถแก้ไขได้บางส่วนด้วยการเพิ่ม

mount --change-cygdrive-prefix /
export HOME=/c/Users/BZISAD0

ใน. bashrc ของฉัน แต่ถ้าฉันดูตัวแปร PATH ทุกอย่างยังคงมี / cygdrive / อยู่ ฉันคิดว่าฉันสามารถเขียนสคริปต์เพื่อแก้ไข PATH แต่นั่นเป็นสิ่งที่น่าสนใจยิ่งกว่าสิ่งที่ฉันทำไปแล้ว มีก็จะเป็นวิธีที่ดีกว่าและผมสวยมั่นใจมีตั้งแต่ Git ของเปลือกทุบตีใช้ (AFAIK) รุ่นเก่าของ Cygwin และมีการกำหนดค่าอย่างใดที่จะไม่ย่อหน้า/cygdriveทุกที่ ดังนั้นฉันจะเปลี่ยนลูกบิด "ดูด" เป็นศูนย์ได้อย่างไร

การ์ตูน Gary Larson

คำตอบ:


39

การ grepping ไปรอบ ๆ ใน / etc ได้เปิดลิงก์ที่ Googling ทำไม่ได้ /etc/fstabมันจะเปิดออกคุณสามารถควบคุมได้ในแฟ้ม เพียงเพิ่มบรรทัดที่ระบุว่า

none / cygdrive binary 0 0

และปัญหาควรได้รับการแก้ไข ไม่มีการแก้ไข kludge เพิ่มเติมใน. bashrc และไม่มี $ PATH ที่ยุ่งเหยิง


2
ฉันใช้วิธีนี้และตอนนี้เมื่อฉันพยายามทำls /windows ไดรฟ์ไม่ปรากฏขึ้น ls -l /ไม่ได้เมื่อใช้ คาดหวังหรือไม่ สามารถแก้ไขได้หรือไม่ นี่คือสิ่งที่ฉันมีใน fstab:none / cygdrive binary,posix=0,user,acl 0 0
Tibi

ฉันไม่รู้ว่ามีวิธีที่จะทำให้ไดรฟ์ windows /ทำงาน คุณเคยมีสิ่งนั้นมาก่อนหรือไม่ (หรือที่/cygdrive/?) ฉันมักจะอยู่กับความจริงที่ว่าฉันต้องรู้ว่าไดรฟ์ Windows ที่มีอยู่และฉันแทบจะไม่เคยใช้พวกเขาต่อไป
iconoclast

1
ใช่ls /cygdriveควรแสดงรายการไดรฟ์ Windows c/ e/ f/เอาท์พุทสำหรับฉันเช่นเป็น โปรดสังเกตว่าไดรฟ์ได้รับการปฏิบัติเหมือนโฟลเดอร์อย่างไร
Kat

1
ใช้งานได้เพียงครึ่งเดียว การเมาท์ทั้งสอง (ของจริง/และcygdrive) มีการวางซ้อนกัน นั่นคือ: คุณจะได้รับที่ไดรฟ์โดยใช้/c, ฯลฯ - /แต่พวกเขาจะไม่ถูกระบุว่าเป็นส่วนหนึ่งของ ฉันคิดว่าของจริง/กำลังซ่อนเนื้อหาของcygdriveเมื่อมีรายการ ฉันสงสัยว่านี่เป็นพฤติกรรมที่ไม่ได้กำหนดทางเทคนิคและอาจทำลายบางสิ่งบางอย่างได้ /mntอย่างไรก็ตามเนื่องจากฉันชอบที่จะสามารถมองเห็นสิ่งที่ฉันกำลังทำงานกับผมเลือก
underscore_d

1
@Tibi ฉันค้นพบว่าถ้าคุณ cd ไปที่ / แล้วทำ mkdir c (หรือชื่อไดรฟ์ของคุณ) มันจะทำให้จุดเมานท์นั้นมองเห็น ls แทนที่จะเขียนทับมันด้วยไดเร็กตอรี่ว่างเปล่า ใครจะมีความคิด
barksdml

10

วิธีที่หนึ่ง

mount -c /
mount -m > /etc/fstab

วิธีที่สอง

echo - / cygdrive acl > /etc/fstab

ตัวอย่าง


ทั้งก่อนและหลังทำสิ่งนี้ (วิธีที่ 1) /อ้างถึงไดเรกทอรีราก cygwin64 และcd /cไม่ทำงาน เพื่อให้การทำงานที่ผมต้องทำcd /c mount c: /c
MM

/cไม่ควรจะทำงานวิธีแก้ปัญหาของฉันไม่เคยแนะนำว่า
Steven Penny

2
ฉันตีความ "วิธีกำจัด / cygdrive ในพา ธ " เพื่อหมายถึง "วิธีอนุญาต / c ให้ทำงานแทน / cygdrive / c" (และคล้ายกันสำหรับตัวอักษรอื่น ๆ ) ตอนนี้ PATH ของฉันแสดงจริง / c / bla แทน / cygdrive / c / bla
MM

1
ในฐานะของ 2.9.0 (0,318 / 5/3) 2017-09-12 10:18 x86_64 Cygwin ทำวิธีการหนึ่งที่จะช่วยให้ผู้ใช้สามารถหรือcd /c cd c:การใช้cd /ยังไปที่ cygwin64 dir
Marcel Wilson

1

ใช่เมานต์ควรใช้งานได้

mount -c /

หากคุณยังมีรายการPATHที่อ้างถึง/cygdriveคุณอาจต้องรีบูต

นอกจากนี้ตรวจสอบหากมีPATHการตั้งค่าในที่อ้างถึง/etc/profile/cygdrive


คุณหมายถึงการรีสตาร์ท Cygwin หรือรีบูตเครื่องทั้งหมดหรือไม่
iconoclast

ฉันคิดว่าคุณต้องยุติกระบวนการที่ใช้ Cygwin ทั้งหมด วิธีที่ง่ายที่สุดในการทำเช่นนี้คือรีบูตเครื่อง
มิเคล

ปกติฉันจะชอบคำตอบของคนอื่นเมื่อฉันพบคำตอบสำหรับคำถามของฉันเอง แต่เนื่องจากคุณต้องการรีบูต (หรือจำลองสถานการณ์) และเนื่องจากของฉันเป็นสิ่งที่พบในเอกสารของ cygwin ฉันจะไปกับฉัน
iconoclast

หากคุณทำงานโดยไม่ต้องรีบูตเครื่องโดยทั้งหมด!
มิเคล

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