Як я можу позбутися префікса 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всюди. Отже, як я можу повернути регулятор "Suck" до нуля?

Гарі Ларсон комічний

Відповіді:


39

Позібравшись у / і т. Д., З’явилось посилання, яке Google не робив. Виявляється, ви можете керувати цим у файлі /etc/fstab. Просто додайте рядок, який говорить

none / cygdrive binary 0 0

і проблему слід вирішити. Більше жодних виправлень в kbdgey у .bashrc та жодної помилки $ PATH.


2
Я використовував цей метод, і тепер, коли я намагаюся це зробити ls /, диски Windows не з'являються. Навіть при використанні ls -l /. Це очікується? Чи можна це виправити? Ось що я маю в fstab:none / cygdrive binary,posix=0,user,acl 0 0
Тібі

Я не знав, що існує спосіб отримати накопичувачі Windows /. У вас це було раніше? (Або в /cygdrive/?) Я завжди просто жив із тим, що я повинен знати, які диски Windows доступні, і я навряд чи коли-небудь ними користуюся.
іконоборство

1
Так, ls /cygdriveслід вказати диски Windows. Для мене, наприклад, результат c/ e/ f/. Зверніть увагу, як диски обробляються як папки.
Кет

1
Це лише половина працює. Два кріплення (справжнє /та cygdrive) є свого роду накладеними. Тобто: ви можете отримати на дисках з використанням /c, і т.д. - але вони ніколи не перераховані в якості частини /. Я думаю, що справжнє /приховує вміст cygdriveпри переліку. Мені цікаво, чи це технічно невизначена поведінка і, можливо, можливо щось порушить. У всякому разі, оскільки я вважаю за краще бачити все, з чим працюю, я обираю /mnt.
підкреслюй_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.
ММ

/cніколи не повинен був працювати, моє рішення ніколи цього не пропонувало
Стівен Пенні

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, виконуючи метод 1, можна дозволити користувачу cd /cабо cd c:. Використання cd /все ще переходить до редактора cygwin64.
Марсель Вілсон

1

Так, монтаж повинен працювати.

mount -c /

Якщо ви все ще маєте записи в PATHцьому посиланні /cygdrive, вам, ймовірно, потрібно просто перезавантажити.

Також перевірте, чи є якісь PATHналаштування в /etc/profileцьому посиланні /cygdrive.


Ви маєте на увазі перезапустити Cygwin чи фактично перезавантажити всю машину?
іконоборство

Я думаю, вам потрібно припинити всі процеси на основі Cygwin. Найпростіший спосіб зробити це - перезавантажити машину.
Мікель

Я, як правило, віддаю перевагу відповідям інших людей, коли знаходжу відповіді на свої власні запитання, але оскільки ваша вимагає перезавантаження (або моделювання її) і оскільки моя - це те, що знайдено в документації cygwin, я йду зі своїм.
іконоборство

Якщо ваша працювала без перезавантаження, то будь-якими способами!
Мікель

Але якщо я перезавантажую машину, цієї зміни вже немає. Повернення до того, що зберігається у fstab.
іржа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.