更改Mingw的启动目录或创建Mingw符号链接

17

如何设置Mingw控制台的启动目录?我只使用Mingw进行编译。但由于缺乏编辑器甚至符号链接,我不知道如何告诉Mingw控制台在不同的目录中启动而不是常规主目录。

如果有人知道如何像Cygwin一样放置到NTFS驱动器的“真实”符号链接,那也会很有帮助。 Mingw复制内容,当在Subversion目录上工作时无用。

我是个懒人,每次都要输入cd /c/Documents/USER/.../Project让我感觉很痛苦:>

7个回答

24

如果还有其他人在寻找答案,请注意以下内容:

  1. 如果没有快捷方式,创建一个。可以放在桌面或任务栏上。
  2. 右键单击 >> 属性 >> 更改启动位置:值。
  3. 使用快捷方式,可立即进入您的项目目录。

我在桌面上有几个不同项目的快捷方式,这样我就可以快速在每个目录中启动终端并开始工作了!


我已经为git-bash shell完成了这个,并且似乎对它起作用。 - Piku
2
很好的提示,但只有在我将“C:\MinGW\msys\1.0\etc\profile”中的“cd $HOME”注释掉时才有效。 “cd $HOME”是“profile”中最后一个非注释行。更多信息请参见SuperUser上的此帖子 - jrh
当然,这可行,但在我的情况下,我还必须从我的 Git Bash 快捷方式的“目标”字段中 "C:\Program Files\Git\git-bash.exe" --cd-to-home 删除 --cd-to-home 参数。 - userfuser

9
这是我认为最简单的方法:
  • 打开shell

  • vim .profile (按ESC / i进入插入模式)

    #!/bin/bash

    cd /c/Users/jbr

(按ESC / wq以写入并关闭编辑器)

  • 测试.profile bash文件:source .profile

  • 关闭并重新打开shell。

祝您使用愉快, Fabar

1
如果您要关闭并重新打开shell,那么您不必“source”该文件,但这肯定不会有任何问题。 - Joels Elf
like this solution - kyshel

4
我找到了以下解决方案,我不想要挂载点,我想明确地从我当前所在的任何目录(工作目录)开始,因此我编写了一堆脚本。

它们可以工作,但仍然存在包含空格的路径问题(抱歉):

bash.bat

将其放置在您的路径中,以便您可以从cmd.exe运行它

@echo off

set STARTUP_DIR=%CD%

D:\MinGW\msys\1.0\bin\bash.exe --login

确保您设置了一个名为HOME的环境变量,该变量指向您想要设置为主目录的目录(必须没有空格!!)。例如,我的情况下是D:\Users\Myname。

.bashrc

将其放置在您的主目录中。

if [[ "$STARTUP_DIR" != "$PWD" ]]; then
  cd $STARTUP_DIR
fi

现在考虑到bash.exe将运行.bash_profile而不是.bashrc,我在主目录中添加了以下内容:

.bash_profile

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

我使用Console2,所以我只需将我的bash.bat文件设置为启动shell即可。

4
默认情况下,当我启动{MinGW安装位置}\msys\1.0\msys.bat时,shell会在文件夹{MinGW安装位置}\msys\1.0\home\jbr中启动。 MinGW screenshot before 我创建了一个名为{MinGW安装位置}\msys\1.0\home\jbr\.profile的文件,并将以下内容添加到其中:
# Cd to my windows home:
cd /c/Users/jbr

现在当我打开一个新的shell msys.bat时,我处于正确的位置: MinGW screenshot after 这对我很有用。

3

我编辑了 C:\MinGW\msys\1.0\etc\profile 文件,并将第32行改为:

# Set up USER's home directory
if [ -z "$HOME" ]; then
  HOME="/home/$LOGNAME"
fi

to:

  HOME="/c/Users/$LOGNAME"

现在当我打开MinGW(msys)时,它使用默认的Windows主目录。这使得一些功能成为可能,例如~/.profile~/.ssh等。


2

使用挂载点代替符号链接。mingw不支持ntfs符号链接(它们相对较新),但是对于大多数用例(例如在mingw之外访问您正在工作的目录),挂载点是可以的。

设置新的默认目录最简单的方法可能是在主目录中使用.bashrc,并将其cd到所需的目录。


.bashrc被忽略了,mingw只有/bin/sh(没有bash) - mschmoock
1
要将挂载点显示在桌面或其他地方,必须在c:\MinGW\msys\1.0\etc\fstab中添加一个条目。C:\DOKUME~1<USER>\Desktop /home/<USER>/desktop (对于德语安装) - mschmoock
感谢您对(关于.bashrc)的更正和(关于fstab)的补充。我手头有一些重要的msys组件,包括bash,有点觉得它是mingw的一部分。 /etc/profile也应该适用于股票sh。 - Patrick Georgi

0

如果有人知道如何像Cygwin一样将“真正的”符号链接放置到NTFS驱动器上,那将非常有帮助。mingw会复制内容,这在处理子版本目录时是无用的。

Cygwin不会放置真正的符号链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接