为什么我不能 'cd' 到 Cygwin 上的 Bash 别名?
Why can't I 'cd' into Bash aliases on Cygwin?
我在 Cygwin 上通过 mintty
终端使用 Bash,我在我的 Cygwin 主目录的 .bashrc
文件中创建了两个别名。
alias croot="C:/cygwin64"
alias desktop="B:/Users/User/Desktop"
当我在终端中输入 croot
或 desktop
时,似乎工作正常:
B:/Users/User/Desktop: Is a directory
但是,将这些别名与 cd croot
returns 之类的东西一起使用会出现错误:
-bash: cd: croot: No such file or directory
这是怎么回事?
alias 并不像您想象的那样工作。这样做:
alias croot='cd C:/cygwin64'
croot
或者:
croot=C:/cygwin64
cd "$croot"
结果:
$ pwd
/
有一种方法可以完成这项工作。但我不推荐它。请改用 。
$ help alias
alias: alias [-p] [name[=value] ... ]
Define or display aliases.
Without arguments, 'alias' prints the list of aliases in the reusable
form 'alias NAME=VALUE' on standard output.
Otherwise, an alias is defined for each NAME whose VALUE is given.
A trailing space in VALUE causes the next word to be checked for
alias substitution when the alias is expanded.
Options:
-p print all defined aliases in a reusable format
Exit Status:
alias returns true unless a NAME is supplied for which no alias has been
defined.
$ 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
将不起作用。
我在 Cygwin 上通过 mintty
终端使用 Bash,我在我的 Cygwin 主目录的 .bashrc
文件中创建了两个别名。
alias croot="C:/cygwin64"
alias desktop="B:/Users/User/Desktop"
当我在终端中输入 croot
或 desktop
时,似乎工作正常:
B:/Users/User/Desktop: Is a directory
但是,将这些别名与 cd croot
returns 之类的东西一起使用会出现错误:
-bash: cd: croot: No such file or directory
这是怎么回事?
alias 并不像您想象的那样工作。这样做:
alias croot='cd C:/cygwin64'
croot
或者:
croot=C:/cygwin64
cd "$croot"
结果:
$ pwd
/
有一种方法可以完成这项工作。但我不推荐它。请改用
$ help alias
alias: alias [-p] [name[=value] ... ] Define or display aliases.
Without arguments, 'alias' prints the list of aliases in the reusable form 'alias NAME=VALUE' on standard output.
Otherwise, an alias is defined for each NAME whose VALUE is given. A trailing space in VALUE causes the next word to be checked for alias substitution when the alias is expanded.
Options: -p print all defined aliases in a reusable format
Exit Status: alias returns true unless a NAME is supplied for which no alias has been defined.
$ 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
将不起作用。