Démarrez MSYS dans le dossier actuel

9

J'ai MinGW / MSYS sous Windows et je ne sais pas comment démarrer le shell MSYS dans le dossier dans lequel je travaille.

Par exemple, dans la console Windows, je travaille dans un dossier c:\tempet si j'appelle MSYS ( msys.bat), il ouvre une nouvelle fenêtre de console à un emplacement fixe, représentant mon dossier personnel.

Comment changer ce msys.batfichier, pour que le shell MSYS s'ouvre dans le dossier de travail actuel (ou y change après le démarrage)?

zetah
la source
Pouvez-vous inclure le contenu de ce fichier de commandes dans votre question?
Karan
1
Sauf si j'ai raté quelque chose, je ne vois pas de chemin défini n'importe où dans ce fichier de commandes. Je suppose que rxvt / bash démarrent dans leurs répertoires par défaut selon leurs fichiers de configuration. Vous pourriez peut- être leur transmettre votre dir ( %cd%) actuel , mais je ne suis pas sûr.
Karan
Oui, c'est ce que je recherche: lors de l'appel de bash, demandez-lui de changer dans le dossier de travail actuel sous Windows. Cygwin a une option similaire
zetah

Réponses:

6

Je ne sais pas quelle version de msysgit vous utilisez, mais pour moi, appeler msys.batne change pas le répertoire actuel. Si vous voyez le répertoire en cours de modification, vérifiez le etc/profilefichier dans le répertoire msysgit pour les cdcommandes. Comme ce fichier est exécuté au démarrage d'un shell de connexion, il se peut que vous arriviez toujours dans votre répertoire personnel.

sschuberth
la source
3
Oui, la dernière ligne de ce fichier (... \ mingw \ msys \ 1.0 \ etc \ profile sur mon système) est cd "$HOME". Si vous commentez que out bash commencera dans le dossier actuel, il est assez facile de taper cdpour aller dans le dossier d'accueil.
Brian Burns
4

Comme d'autres l'ont souligné, msys.bat émettra un cd "$HOME"from etc/profile. La définition de la variable d'environnement HOME .me donne un shell mingw avec le répertoire de travail correct.

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

Vous pouvez créer un fichier bash et passer des arguments au msys2_shell.cmd pour commencer où vous le souhaitez.

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

Brandan
la source
0

Si vous souhaitez l'exécuter dans le dossier dans lequel vous travaillez et que vous travaillez régulièrement dans ce dossier, vous pouvez ajouter une ligne à la fin de .bash_profilevotre répertoire personnel.

cd /c/temp

Cette commande sera exécutée chaque fois que vous vous connectez au terminal. Vous pouvez obtenir un fichier élaboré et source si vous avez plusieurs commandes à exécuter, par exemple

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

Ceci est particulièrement utile si vous avez déjà configuré votre .bashrc et que vous ne voulez pas vraiment utiliser un autre chemin HOME.

Brian Thomas
la source
0

Dans le cas où la modification de etc/profile(commentant cd "$HOME"comme dans la première réponse) n'est pas souhaitable pour une raison quelconque, cela pourrait faire le travail:

# 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"

Cet exemple démarrerait le shell msys dans le /tmprépertoire.

sebres
la source