Iniciando o Cygwin em um diretório arbitrário?

Iniciando o Cygwin em um diretório arbitrário?

É possível configurar o Cygwin para que, se eu chamar o Cygwin.bat de um caminho arbitrário usando um método de inicialização arbitrário nativo do Windows (cmd.exe, linha de comando do Total Commander), ele inicie o bash preparado nesse diretório?

Por exemplo, se eu executar cmd.exe e fizer o seguinte (desde que Cygwin.bat esteja no meu PATH):

C:\Users\Me>cd testdir

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

C:\Users\Me\testdir>Cygwin

A janela do Cygwin é aberta e estou exatamente onde parei:

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

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

Como você pode ver, quando recebo o prompt do Cygwin, já estou em testdir, não em /home/me.

(O cenário mais típico em que vou usar isso é executar o Cygwin na linha de comando do Total Commander, mas acho que deve funcionar da mesma forma.)

Como conseguir isso?

Responder1

Consegui hackear algo juntos para você. Coloque isso em um arquivo em lote no seu caminho (chamei meu cygwin.bate chamei digitando 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"

Responder2

Essemais simples .batarquivo ( .cmdno meu caso) étrabalhando bempara mim:

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

Testado trabalhando em:

  • DMC.
  • Comando total.
  • Sessão SSH remota.
  • Menu Iniciar -> Executar (neste caso abre em C:\Users\Me).

informação relacionada