在 .bashrc 文件中将路径名设置为别名

Setting a pathname as an alias in the .bashrc file

我试图在 .bashrc 文件中使用别名来存储我经常去的路径 (Ubuntu 14.04) 即 alias pathname="/home/Dommol/test/next" 但是当我尝试使用别名 cd pathname 我得到一个错误 -bash: cd: pathname: No such file or directory.

问题: 如何让 bash 识别出我正在尝试使用别名 pathname 而不是尝试更改到目录 pathname

顺便说一句,我可以创建别名 alias pathname="cd /home/Dommol/test/next",只需键入 pathname 即可更改

alias 用于命令的别名,而不是 shell 变量。做你想做的,在你的 .bashrc:

中设置一个 shell 变量
pathname="/home/Dommol/test/next"

然后在提示符下:

$ cd $pathname

使用 alias 创建自定义命令,其中包含您在 .bashrc 中所需的参数,如您在 "aside" 中所述:

alias pathname="cd /home/Dommol/test/next"

然后在提示符下:

$ pathname

lurker 的答案应该是公认的解决方案。但是,为了回答您最初的问题,我认为这可能有效:

#Your test code:
alias pathname="/home/Dommol/test/next"
cd pathname

#Similar functionality
ln -s /home/Dommol/test/next pathname
cd -P pathname

如果你有更多这样的目录并且想从任何位置进行 cd,你可以这样做:(请注意,下面的代码仅限于 cd 命令。)

mkdir -p ~/.cdpath #Random name - could be changed
export CDPATH=~/.cdpath

ln -s /home/Dommol/test/next ~/.cdpath/pathname
cd -P pathname #Will work from any starting location.

ln -s /home/Dommol/test/next2 ~/.cdpath/pathname2
cd -P pathname2 #Will work from any starting location.

最佳解决方案是将其创建为变量,正如 lurker 的回答中所解释的那样。该解决方案也适用于其他命令。