¿Iniciando Cygwin en un directorio arbitrario?

¿Iniciando Cygwin en un directorio arbitrario?

¿Es posible configurar Cygwin de modo que si llamo a Cygwin.bat desde una ruta arbitraria usando un método de inicio arbitrario nativo de Windows (cmd.exe, línea de comando de Total Commander), inicie bash preparado en ese directorio?

Por ejemplo, si ejecuto cmd.exe y hago lo siguiente (siempre que Cygwin.bat esté en mi archivo PATH):

C:\Users\Me>cd testdir

C:\Users\Me\testdir>dir /b
myfile1
myfile2

C:\Users\Me\testdir>Cygwin

Se abre la ventana de Cygwin y estoy justo donde lo dejé:

me@here /cygdrive/c/Users/Me/testdir
$ ls
myfile1*  myfile2*

me@here /cygdrive/c/Users/Me/testdir

Como puede ver, cuando recibo el mensaje de Cygwin, ya estoy en testdir, no en /home/me.

(El escenario más típico en el que voy a usar esto es ejecutar Cygwin desde la línea de comandos de Total Commander, pero supongo que debería funcionar igual).

¿Cómo lograr esto?

Respuesta1

Pude hackear algo para ti. Coloque esto en un archivo por lotes en su ruta (llamé al mío cygwin.baty lo llamé ingresando cygwin.bat):

@echo off
set pth=%CD:~2,99%
set pth=%pth:\=/%
set drv=%CD:~0,1%
set "fullpath=/cygdrive/%drv%%pth%"
C:\cygwin\bin\bash.exe --login -i -c "cd ""%fullpath%""; exec /bin/bash"

Respuesta2

Estemás simple .batEl archivo ( .cmden mi caso) esfuncionando bienpara mí:

c:\CygWin\bin\bash.exe --login -i -c "export CD='%CD%'; cd \"$CD\"; exec /bin/bash"

Probado trabajando en:

  • CMD.
  • Comandante total.
  • Sesión SSH remota.
  • Menú Inicio --> Ejecutar (en este caso se abre en C:\Users\Me).

información relacionada