¿Cómo me deshago del prefijo Cygwin / cygdrive en todas las rutas?


36

Estoy cambiando a Cygwin desde el shell bash que se incluye con Git para Windows, y encuentro un problema extraño. Alguien pensó que sería una buena idea agregar /cygdrive/a todos los caminos, mientras que creo que es una idea horriblemente fea. He podido determinar que puedo solucionar esto parcialmente agregando

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

en mi .bashrc, pero si miro la variable PATH, todo sigue teniendo / cygdrive /. Supongo que podría escribir un script para arreglar la RUTA, pero eso es aún más difícil de lo que ya estoy haciendo. Tiene que haber una mejor manera, y estoy bastante seguro de que la hay desde que bash shell de Git usa (AFAIK) una versión anterior de Cygwin, y de alguna manera está configurada para no anteponerse en /cygdrivetodas partes. Entonces, ¿cómo puedo girar la perilla "Suck" a cero?

Cómic de Gary Larson

Respuestas:


39

Buscando en / etc apareció un enlace que Google no. Resulta que puedes controlar esto en el archivo /etc/fstab. Solo agrega una línea que diga

none / cygdrive binary 0 0

y el problema debería ser solucionado. No más correcciones de kludgey en .bashrc, y no hay problemas en $ PATH.


2
Usé este método, y ahora cuando trato de hacerlo ls /, las unidades de Windows no aparecen. Ni siquiera cuando se usa ls -l /. ¿Se espera esto? ¿Se puede arreglar? Esto es lo que tengo en fstab:none / cygdrive binary,posix=0,user,acl 0 0
— Tibi

No sabía que había una manera de obtener las unidades de Windows /. ¿Tenías eso antes? (¿O en /cygdrive/?) Siempre he vivido con el hecho de que tengo que saber qué unidades de Windows están disponibles, y casi nunca las uso de todos modos.
— iconoclasta

1
Sí, ls /cygdrivedebería enumerar las unidades de Windows. La salida para mí, por ejemplo, es c/ e/ f/. Tenga en cuenta cómo las unidades se tratan como carpetas.
— Kat

1
Esto solo funciona a medias. Las dos monturas (real /y cygdrive) están superpuestas. Es decir: puede acceder a las unidades utilizando /c, etc. , pero nunca figuran como parte de /. Creo que lo real /está ocultando el contenido de la cygdrivelista. Me pregunto si este es un comportamiento técnicamente indefinido y podría romper algo. De todos modos, como prefiero poder ver cualquier cosa con la que estoy trabajando, elijo /mnt.
— underscore_d

1
@Tibi Descubrí que si haces cd en / y luego haces mkdir c (o el nombre de tu unidad), hará que ese punto de montaje de la unidad sea visible para ls, en lugar de sobrescribirlo con un directorio vacío. ¿Quien lo hubiera pensado?
— barksdml

10

Método uno

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

Método dos

echo - / cygdrive acl > /etc/fstab

Ejemplo


tanto antes como después de hacer esto (método 1), se /refirió al directorio raíz cygwin64 y cd /cno funcionó. Para hacer el cd /ctrabajo que tenía que hacer mount c: /c.
— MM

/cnunca debería haber funcionado, mi solución nunca sugirió eso
— Steven Penny

2
Interpreto "cómo deshacerse de / cygdrive en las rutas" que significa "cómo permitir que / c funcione en lugar de / cygdrive / c" (y de manera similar para otras letras). Mi RUTA ahora muestra / c / bla en lugar de / cygdrive / c / bla
— MM

1
A partir de 2.9.0 (0.318 / 5/3) 2017-09-12 10:18 x86_64 Cygwin, hacer el método uno permitirá al usuario cd /co cd c:. El uso cd /todavía va al directorio cygwin64.
— Marcel Wilson el

1

Sí, el montaje debería funcionar.

mount -c /

Si todavía tiene entradas a las PATHque se refiere /cygdrive, entonces probablemente solo necesite reiniciar.

Además, verifique si hay alguna PATHconfiguración a la /etc/profileque se refiera /cygdrive.


¿Te refieres a reiniciar Cygwin o reiniciar toda la máquina?
— iconoclasta

Creo que necesita terminar todos los procesos basados ​​en Cygwin. La forma más fácil de hacer esto es reiniciar la máquina.
— Mikel

Normalmente prefiero las respuestas de otras personas cuando encuentro respuestas a mis propias preguntas, pero dado que la suya requiere un reinicio (o simulación de las mismas) y dado que la mía es la que se encuentra en la documentación de Cygwin, voy con la mía.
— iconoclasta

Si el tuyo funcionó sin reiniciar, ¡entonces por supuesto!
— Mikel

Pero si reinicio la máquina, este cambio desaparecerá. Volver a lo que está almacenado en fstab.
— rustyx
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.