我从 Windows 版 Git 附带的 bash shell 切换到 Cygwin,并遇到了一个奇怪的问题。有人认为添加/cygdrive/
到所有路径是个好主意,而我认为这是一个非常丑陋的主意。我已经确定可以通过添加来部分解决此问题
mount --change-cygdrive-prefix /
export HOME=/c/Users/BZISAD0
在我的 .bashrc 中,但是如果我查看 PATH 变量,所有内容仍然包含 /cygdrive/ 。我想我可以编写一个脚本来修复 PATH,但这比我已经在做的更加麻烦。一定有更好的方法,而且我非常有信心,因为 Git 的 bash shell 使用(AFAIK)旧版本的 Cygwin,并且它以某种方式配置为不是到处前置/cygdrive
。那么,我怎样才能将“吸”旋钮调至零?
答案1
在 /etc 中查找出现一条链接谷歌搜索没有。事实证明你可以在文件中控制它/etc/fstab
。只需添加一行内容即可
none / cygdrive binary 0 0
并且问题应该得到解决。 .bashrc 中不再有杂乱的修复,也没有混乱的 $PATH。
答案2
答案3
cygpath呢(转换Unix和Windows格式路径,或者输出系统路径信息)...
$ pwd
/cygdrive/c/Windows/System32
$ cygpath -w $(pwd)
C:\Windows\System32
答案4
没有提到的另一点是,使用 Cygwin DLL 的不同风格使用不同的配置(如上所述)。一个例子是 Windows 版的 Git,它基于 MSYS,而 MSYS 又使用 Cygwin。
跨这些风格访问“Unix”路径的统一方法是使用/proc/cygdrive
;这样,如果cygpath -u D:\
return/d
或并不重要/cygdrive/d
。
公共前缀也可以通过cygpath
使用-U
开关获得。
PS:因为这并没有回答问题,而是回避了根本问题(除了装饰问题),所以我正在制作这个 CW。