为什么我不能在Cygwin上刻录Bash别名?

时间:2017-02-08 00:50:18

标签: bash windows-7 cygwin alias aliases

我通过Cygwin上的bash终端使用mintty,我在我的Cygwin主目录的.bashrc文件中创建了两个别名。

alias croot="C:/cygwin64"
alias desktop="B:/Users/User/Desktop"

当我将crootdesktop输入终端时,它似乎工作正常:

  

B:/ Users / User / Desktop:是目录

但是,使用类似cd croot之类的别名会返回错误:

  

-bash:cd:croot:没有这样的文件或目录

有谁知道这里发生了什么?

2 个答案:

答案 0 :(得分:1)

别名不会像您认为的那样工作。这样做:

alias croot='cd C:/cygwin64'
croot

或者:

croot=C:/cygwin64
cd "$croot"

结果:

$ pwd
/

答案 1 :(得分:0)

有一种方法可以使这项工作。但我不建议这样做。请改用steven's answer

  

$帮助别名

     

别名:别名[-p] [名称[=值] ...]      定义或显示别名。

     

不带参数的'alias'打印可重用的别名列表      在标准输出上使用“别名NAME = VALUE”格式。

     

否则,将为每个赋予VALUE的NAME定义一个别名。       VALUE中的尾随空格将检查下一个单词      扩展别名时使用别名替换。

     

选项:        -p以可重用的格式打印所有已定义的别名

     

退出状态:      别名返回true,除非提供没有别名的NAME      定义。

$ alias croot="C:/cygwin64"
$ alias desktop="B:/Users/User/Desktop"

$ alias cd='builtin cd ' # Notice the trailing space.

$ cd croot; pwd
/

请注意,cd扩展仅考虑紧靠alias的单词。因此cd -P croot将不起作用。