Jak pozbyć się prefiksu Cygwin / cygdrive na wszystkich ścieżkach?


36

Zmieniam się na Cygwin z powłoki bash dostarczanej z Git dla Windows i napotykam dziwny problem. Ktoś pomyślał, że dobrym pomysłem byłoby dodanie /cygdrive/do wszystkich ścieżek, podczas gdy myślę, że to okropnie brzydki pomysł. Udało mi się ustalić, że mogę to częściowo naprawić, dodając

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

w moim .bashrc, ale jeśli spojrzę na zmienną PATH, wszystko nadal ma / cygdrive /. Przypuszczam, że mógłbym napisać skrypt, aby naprawić ŚCIEŻKĘ, ale to jest jeszcze bardziej kludgey niż to, co już robię. Musi być lepszy sposób i jestem całkiem pewien, że tak jest, ponieważ powłoka bash Gita używa (AFAIK) starszej wersji Cygwina i jest w jakiś sposób skonfigurowana tak, aby nie/cygdrive wszędzie doklejać . Jak więc ustawić pokrętło „Suck” na zero?

Komiks Gary Larson

Odpowiedzi:


39

Po przeszukaniu w / etc pojawił się link, którego Googling nie zrobił. Okazuje się, że możesz to kontrolować w pliku /etc/fstab. Po prostu dodaj wiersz, który mówi

none / cygdrive binary 0 0

i problem powinien zostać rozwiązany. Nigdy więcej kludgey poprawek w .bashrc i nie popsutych $ PATH.


2
Użyłem tej metody, a teraz, gdy próbuję to zrobić ls /, dyski Windows nie pojawiają się. Nawet podczas używania ls -l /. Czy jest to oczekiwane? Czy można to naprawić? Oto co mam w fstab:none / cygdrive binary,posix=0,user,acl 0 0
— Tibi

Nie wiedziałem, że istnieje sposób na uzyskanie dysków Windows /. Czy miałeś to wcześniej? (Lub o /cygdrive/?) Zawsze po prostu żyłem z faktem, że muszę wiedzieć, które dyski z systemem Windows są dostępne i prawie nigdy z nich nie korzystam.
— iconoclast

1
Tak, ls /cygdrivenależy wymienić dyski Windows. Na przykład dane wyjściowe to c/ e/ f/. Zwróć uwagę, jak dyski są traktowane jak foldery.
— Kat

1
To tylko połowa działa. Dwa wierzchowce (prawdziwe /i cygdrive) są w pewnym sensie nakładane. To znaczy: można uzyskać na dyskach wykorzystujących /c, itd. - ale nigdy nie są one wymienione w części /. Wydaje mi się, że prawdziwy /ukrywa zawartość cygdrivelisty. Zastanawiam się, czy jest to zachowanie nieokreślone z technicznego punktu widzenia i może coś zepsuć. W każdym razie, ponieważ wolę widzieć wszystko, z czym pracuję, wybieram /mnt.
— underscore_d

1
@ Tibi Odkryłem, że jeśli wykonasz cd do / a następnie wykonasz mkdir c (lub jakakolwiek jest nazwa twojego napędu), spowoduje to, że punkt podłączenia napędu będzie widoczny dla ls, zamiast nadpisywać go pustym katalogiem. Kto by pomyślał?
— barksdml

10

Metoda pierwsza

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

Metoda druga

echo - / cygdrive acl > /etc/fstab

Przykład


zarówno przed, jak i po wykonaniu tej czynności (metoda 1), /odwoływał się do katalogu głównego cygwin64 i cd /cnie działał. Aby wykonać cd /cpracę musiałem wykonać mount c: /c.
— MM

/cnigdy nie powinno działać, moje rozwiązanie nigdy tego nie sugerowało
— Steven Penny

2
Interpretuję „jak pozbyć się / cygdrive na ścieżkach” w znaczeniu „jak zezwolić / c na działanie zamiast / cygdrive / c” (i podobnie w przypadku innych liter). Moja ŚCIEŻKA rzeczywiście pokazuje teraz / c / bla zamiast / cygdrive / c / bla
— MM

1
Od 2.9.0 (0.318 / 5/3) 2017-09-12 10:18 x86_64 Cygwin, wykonanie pierwszej metody pozwoli użytkownikowi na cd /club cd c:. Używanie cd /nadal przechodzi do cygwin64 reż.
— Marcel Wilson

1

Tak, mount powinien działać.

mount -c /

Jeśli nadal masz w PATHtym wpisy , zapoznaj się z/cygdrive , prawdopodobnie po prostu musisz zrestartować komputer.

Sprawdź także, czy są PATHw /etc/profiletym ustawieniu jakieś ustawienia /cygdrive.


Masz na myśli zrestartowanie Cygwin, czy zrestartowanie całej maszyny?
— iconoclast

Myślę, że musisz zakończyć wszystkie procesy oparte na Cygwin. Najłatwiejszym sposobem na to jest ponowne uruchomienie komputera.
— Mikel

Zwykle preferuję odpowiedzi innych ludzi, gdy znajduję odpowiedzi na moje własne pytania, ale ponieważ twoje wymaga ponownego uruchomienia (lub jego symulacji), a ponieważ moje jest tym, które znajduje się w dokumentacji cygwina, idę z moim.
— iconoclast

Jeśli twoje działało bez restartu, to na pewno!
— Mikel

Ale jeśli uruchomię ponownie komputer, ta zmiana zniknie. Powrót do tego, co jest przechowywane w fstab.
— rustyx
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.