Iniciar MSYS en la carpeta actual

9

Tengo MinGW / MSYS en Windows, y no puedo entender cómo iniciar el shell de MSYS en la carpeta en la que estoy trabajando.

Por ejemplo, en la consola de Windows estoy trabajando en una carpeta c:\tempy si llamo a MSYS ( msys.bat) se abre una nueva ventana de consola en una ubicación fija, que representa mi carpeta de inicio.

¿Cómo cambiar este msys.batarchivo, para que el shell de MSYS se abra en la carpeta de trabajo actual (o se modifique después del inicio)?

zetah
fuente
¿Puede incluir el contenido de ese archivo por lotes en su pregunta?
Karan
1
A menos que me haya perdido algo, no veo una ruta establecida en ese archivo por lotes. Supongo que rxvt / bash se están iniciando en sus directorios predeterminados según sus archivos de configuración. Es posible que pueda pasar su directorio actual ( %cd%) de alguna manera, pero no estoy seguro.
Karan
Sí, eso es lo que estoy buscando: cuando llame a bash, indíquele que cambie en la carpeta de trabajo actual en Windows. Cygwin tiene una opción similar
zetah

Respuestas:

6

No estoy seguro de qué versión de msysgit está utilizando, pero para mí llamar msys.batno cambia el directorio actual. Si ve que se está cambiando el directorio, verifique el etc/profilearchivo en el directorio msysgit para ver los cdcomandos. Como este archivo se ejecuta cuando se inicia un shell de inicio de sesión, podría ser la causa de que siempre aterrice en su directorio de inicio.

sschuberth
fuente
3
Sí, la última línea en ese archivo (... \ mingw \ msys \ 1.0 \ etc \ profile en mi sistema) es cd "$HOME". Si comenta que out bash comenzará en la carpeta actual, entonces es bastante fácil escribir cdpara ir a la carpeta de inicio.
Brian Burns
4

Como otros han señalado, msys.bat emitirá un cd "$HOME"desde etc/profile. Establecer la variable de entorno HOME en .me da un shell mingw con el directorio de trabajo correcto.

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

Puede crear un archivo bash y pasar argumentos al msys2_shell.cmd para comenzar donde quiera que esté.

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

Brandan
fuente
0

Si desea ejecutarlo en la carpeta en la que está trabajando, y está trabajando en esa carpeta regularmente, puede agregar una línea al final de .bash_profilesu directorio de inicio.

cd /c/temp

Este comando se ejecutará cada vez que inicie sesión en el terminal. Puede elaborar y obtener un archivo si tiene varios comandos que desea ejecutar, por ejemplo

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

Esto es especialmente útil si ya tiene su .bashrc configurado o si realmente no desea utilizar una ruta HOME alternativa.

Brian Thomas
fuente
0

En caso de que la modificación de etc/profile(comentando cd "$HOME"como en la primera respuesta) no sea deseable por alguna razón, esto podría hacer el trabajo:

# 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 ejemplo iniciaría msys shell en el /tmpdirectorio.

sebres
fuente