更改Cygwin主文件夹时出现问题

时间:2014-01-31 12:21:50

标签: linux windows bash cygwin

我正在尝试更改我的Cygwin主文件夹。要做到这一点,我遵循了克里斯托弗的回答here,但我在那里给出的指示有些麻烦。

完成所有这些操作后,我的主目录已更改为/cygdrive/c/Windows/system32/%USERPROFILE%

有几件事似乎我不理解:

  1. 我希望主目录更改为C:\Users\Myname
  2. %USERPROFILE不是我可以在任何地方看到的目录,所以我不知道它是什么。
  3. 更改了主目录后,Cygwin不再自动读取.bashrc文件,因为它位于/home/myname或其他任何内容,我没有看到我应该在哪里添加.bashrc文件以供查看。
  4. 有人可以解释一下吗?

3 个答案:

答案 0 :(得分:0)

它是%USERPROFILE%,而不是%USERPROFILES%;确保你有正确的名字。它是一个变量引用,因此您必须对其进行扩展。在环境变量设置中,它应该被扩展,所以如果不是,你很可能在那里有一个拼写错误。

请检查cmd.exe。命令echo %HOME%应该打印

C:\Users\Myname

(这是预期的主目录)。如果没有,则变量未正确设置,其余指令将不起作用。

然而,还有另一种方式,我认为这更容易。在C:\Users的{​​{1}}上挂载/home。我的条目如下:

/etc/fstab

您是否希望c:/Users /home ntfs binary,posix=0,user,noacl 0 0 posix=0取决于您。他们禁止cygwin尝试使用ACL模拟unix权限。既然你想要你的用户配置文件和cygwin home目录一致,我想你混合使用cygwin和本机应用程序,而cygwin生成的访问控制列表通常会使它复杂化。

答案 1 :(得分:0)

旧问题,但供将来参考:

我遇到了同样的问题,我认为这是因为%USERPROFILE%被定义为用户变量,而不是系统变量

因此我将HOME = %USERPROFILE%定义为User变量并且它有效。

目前,我并非100%确定将HOME置于用户变量中是否有任何其他影响,但到目前为止还不错。 :)

答案 2 :(得分:0)

我在全新的Cygwin装置上遇到类似的问题。启动Cygwin时出现以下错误。

mkdir: cannot create directory '/cygdrive/c/WINDOWS/system32/"C:': Permission denied
/cygdrive/c/WINDOWS/system32/"C:/Users/[username]" could not be created.
Setting HOME to /tmp.

我确定此错误来自设置了/etc/profile目录的HOME脚本。在Windows HOME环境变量定义(其中%USERPROFILE%不应带引号)上阅读@ Jan-Hudac的评论后,我检查了Windows中的HOME用户环境变量,发现它被定义为"%USERPROFILE%"。我删除了引号,然后Cygwin Shell在正确的主目录中正确启动。感谢您的见解!