Avviare MSYS nella cartella corrente


9

Ho MinGW / MSYS su Windows e non riesco a capire come avviare la shell MSYS nella cartella in cui sto lavorando.

Ad esempio, nella console di Windows sto lavorando nella cartella c:\tempe se chiamo MSYS ( msys.bat) si apre una nuova finestra della console in una posizione fissa, che rappresenta la mia cartella principale.

Come modificare questo msys.batfile, in modo che la shell MSYS si apra nella cartella di lavoro corrente (o cambi, dopo l'avvio)?


Puoi includere il contenuto di quel file batch nella tua domanda?
Karan,


1
A meno che non mi sia sfuggito qualcosa, non vedo un percorso impostato in alcun punto in quel file batch. La mia ipotesi è che rxvt / bash si stanno avviando nelle loro directory predefinite secondo i loro file di configurazione. Si potrebbe essere in grado di passare il vostro directory corrente ( %cd%) a loro in qualche modo, ma non sono sicuro.
Karan,

Sì, questo è quello che sto cercando: quando chiamo bash gli inciti a cambiare nella cartella di lavoro corrente in Windows. Cygwin ha un'opzione simile
zetah

Risposte:


6

Non sono sicuro di quale versione di msysgit stai usando, ma per me chiamare msys.batnon cambia la directory corrente. Se vedi che la directory viene cambiata, controlla il etc/profilefile nella directory msysgit per i cdcomandi. Quando questo file viene eseguito all'avvio di una shell di accesso, potrebbe essere la causa per te atterrare sempre nella tua home directory.


3
Sì, l'ultima riga in quel file (... \ mingw \ msys \ 1.0 \ etc \ profile sul mio sistema) è cd "$HOME". Se commentate che out bash inizierà nella cartella corrente, allora è abbastanza facile digitare cdper andare alla cartella principale.
Brian Burns,

4

Come altri hanno sottolineato, msys.bat emetterà un cd "$HOME"da etc/profile. L'impostazione della variabile d'ambiente HOME su .mi dà una shell mingw con la directory di lavoro corretta.

set HOME=.
C:\MinGW\msys\1.0\msys.bat

1

Puoi creare un file bash e passare argomenti a msys2_shell.cmd per avviarlo ovunque tu voglia.

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


0

Se vuoi eseguirlo nella cartella in cui lavori e lavori regolarmente in quella cartella, puoi aggiungere una riga alla fine della .bash_profiletua home directory.

cd /c/temp

Questo comando verrà eseguito ogni volta che si accede al terminale. Puoi ottenere un file elaborato e sorgente se hai più comandi che vuoi eseguire, ad es

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

Ciò è particolarmente utile se hai già configurato il tuo .bashrc e non vuoi davvero usare un percorso HOME alternativo.


0

Nel caso in cui la modifica di etc/profile(commentando cd "$HOME"come nella prima risposta) non sia desiderabile per qualche motivo, questo potrebbe fare il lavoro:

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

In questo esempio verrà avviata la shell msys nella /tmpdirectory.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.