如何去掉所有路径中 Cygwin 的 /cygdrive 前缀?

如何去掉所有路径中 Cygwin 的 /cygdrive 前缀?

我从 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

方法一

mount -c /
mount -m > /etc/fstab

方法二

echo - / cygdrive acl > /etc/fstab

例子

答案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。

相关内容