Inicie o MSYS na pasta atual

9

Eu tenho o MinGW / MSYS no Windows e não consigo descobrir como iniciar o shell do MSYS na pasta em que estou trabalhando.

Por exemplo, no console do Windows, estou trabalhando na pasta c:\tempe, se eu chamar MSYS ( msys.bat), abre uma nova janela do console em um local fixo, representando minha pasta pessoal.

Como alterar esse msys.batarquivo, para que o shell MSYS seja aberto na pasta de trabalho atual (ou seja alterada após o início)?

zetah
fonte
Você pode incluir o conteúdo desse arquivo em lotes na sua pergunta?
Karan
11
A menos que eu tenha perdido algo, não vejo um caminho sendo definido em nenhum lugar desse arquivo em lotes. Meu palpite é que o rxvt / bash está iniciando em seus diretórios padrão, de acordo com seus arquivos de configuração. Você pode passar seu dir ( %cd%) atual para eles de alguma forma, mas não tenho certeza.
Karan
Sim, é isso que estou procurando: ao chamar o bash, instrua-o a mudar na pasta de trabalho atual no Windows. Cygwin tem opção semelhante
zetah

Respostas:

6

Não tenho certeza de qual versão do msysgit você está usando, mas, para mim, a chamada msys.batnão altera o diretório atual. Se você etc/profilevir o diretório sendo alterado, verifique o arquivo no diretório msysgit para obter cdcomandos. Como esse arquivo é executado quando um shell de logon é iniciado, pode ser a causa para você sempre acessar o diretório inicial.

sschuberth
fonte
3
Sim, a última linha desse arquivo (... \ mingw \ msys \ 1.0 \ etc \ profile no meu sistema) é cd "$HOME". Se você comentar que o bash será iniciado na pasta atual, será fácil digitar cdpara ir para a pasta inicial.
9788 Brian Burns
4

Como outros já apontaram, o msys.bat emitirá um cd "$HOME"from etc/profile. Definir a variável de ambiente HOME para .me fornece um shell mingw com o diretório de trabalho correto.

set HOME=.
C:\MinGW\msys\1.0\msys.bat
Marcel Greter
fonte
1

Você pode criar um arquivo bash e passar argumentos para o msys2_shell.cmd para iniciar em qualquer lugar que você queira.

msys2_shell.cmd -where "home/name/esp"

Brandan
fonte
0

Se você deseja executá-lo na pasta em que está trabalhando e trabalha regularmente nessa pasta, pode adicionar uma linha ao final do .bash_profilediretório inicial.

cd /c/temp

Este comando será executado sempre que você efetuar login no terminal. Você pode elaborar e criar um arquivo se tiver vários comandos que deseja executar, por exemplo

. ~/etc/start_script . ~/etc/start_script2

Isso é especialmente útil se você já possui o seu .bashrc configurado e realmente não deseja usar um caminho HOME alternativo.

Brian Thomas
fonte
0

Caso a modificação de etc/profile(comentar cd "$HOME"como na primeira resposta) seja indesejável por algum motivo, isso pode fazer o trabalho:

# in mingw:
%SystemDrive%\mingw\msys\1.0\bin\sh.exe --login -i -c "cd '%TEMP%'; $SHELL"
# msys in root:
%SystemDrive%\msys\bin\sh.exe --login -i -c "cd '%TEMP%'; $SHELL"

Este exemplo iniciaria o shell do msys no /tmpdiretório

sebres
fonte