Mulai MSYS di folder saat ini

9

Saya memiliki MinGW / MSYS di Windows, dan tidak dapat menemukan cara memulai MSYS shell di folder tempat saya bekerja.

Misalnya, di konsol Windows saya bekerja di folder c:\tempdan jika saya memanggil MSYS ( msys.bat) itu membuka jendela konsol baru di beberapa lokasi tetap, mewakili folder rumah saya.

Bagaimana cara mengubah msys.batfile ini , sehingga shell MSYS terbuka di folder saat ini (atau mengubahnya, setelah mulai)?

zetah
sumber
Bisakah Anda memasukkan konten file batch itu dalam pertanyaan Anda?
Karan
1
Kecuali saya melewatkan sesuatu, saya tidak melihat jalur yang ditetapkan di mana pun dalam file batch itu. Dugaan saya adalah bahwa rxvt / bash memulai di dir defaultnya sesuai file konfigurasi mereka. Anda mungkin bisa memberikan dir ( %cd%) saat ini kepada mereka, tapi saya tidak yakin.
Karan
Yap, itulah yang saya cari: saat memanggil bash, instruksikan untuk mengubahnya di folder saat ini yang berfungsi di Windows. Cygwin memiliki opsi serupa
zetah

Jawaban:

6

Saya tidak yakin apa versi msysgit yang Anda gunakan, tetapi bagi saya panggilan msys.battidak mengubah direktori saat ini. Jika Anda melihat direktori sedang diubah, periksa etc/profilefile di direktori msysgit untuk cdperintah. Ketika file ini dieksekusi ketika shell login dimulai, itu mungkin menjadi penyebab bagi Anda untuk selalu mendarat di direktori home Anda.

sschuberth
sumber
3
Ya, baris terakhir dalam file itu (... \ mingw \ msys \ 1.0 \ etc \ profil di sistem saya) adalah cd "$HOME". Jika Anda berkomentar bahwa bash akan mulai di folder saat ini, maka cukup mudah untuk mengetik cduntuk pergi ke folder rumah.
Brian Burns
4

Seperti yang telah ditunjukkan orang lain, msys.bat akan mengeluarkan cd "$HOME"dari etc/profile. Mengatur variabel lingkungan HOME untuk .memberi saya shell mingw dengan direktori kerja yang benar.

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

Anda dapat membuat file bash dan meneruskan argumen ke msys2_shell.cmd untuk memulai di mana pun Anda inginkan.

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

Brandan
sumber
0

Jika Anda ingin menjalankannya di folder tempat Anda bekerja, dan Anda bekerja di folder itu secara teratur, Anda dapat menambahkan baris ke akhir .bash_profiledi direktori home Anda.

cd /c/temp

Perintah ini akan dijalankan setiap kali Anda masuk ke terminal. Anda bisa mendapatkan rumit dan sumber file jika Anda memiliki banyak perintah yang ingin Anda jalankan, misalnya

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

Ini sangat berguna jika Anda sudah mengonfigurasi .bashrc dan atau tidak benar-benar ingin menggunakan jalur HOME alternatif.

Brian Thomas
sumber
0

Dalam hal memodifikasi etc/profile(berkomentar cd "$HOME"seperti pada jawaban pertama) tidak diinginkan karena beberapa alasan, ini dapat melakukan pekerjaan:

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

Contoh ini akan memulai shell msys di /tmpdirektori.

sebres
sumber