使用别名并继续

tre*_*ake 4 alias bashrc

假设我有这个别名 .bashrc

alias somedir="cd /var/www/site"
Run Code Online (Sandbox Code Playgroud)

我怎么能用somedirin say ...cd命令?

例如

cd somedir/app/
Run Code Online (Sandbox Code Playgroud)

这样做当前返回:

-bash: cd: somedir/app: 没有那个文件或目录

甚至可以这样使用别名吗?

Kus*_*nda 11

bash外壳有一个CDPATHshell变量,可以帮助你做到这一点没有一个别名:

 $ CDPATH=".:/var/www/site"
 $ cd app
 /var/www/site/app
Run Code Online (Sandbox Code Playgroud)

如果有一个app叫的子目录doc

 $ cd app/doc
 /var/www/site/app/doc
Run Code Online (Sandbox Code Playgroud)

随着CDPATH价值.:/var/www/site,该cd命令将首先在命令行上给出的目录路径当前目录,如果没有被发现,它会寻找下/var/www/site

bash手册:

CDPATH

cd命令的搜索路径。这是一个以冒号分隔的目录列表,shell 在其中查找cd命令指定的目标目录。样本值为 ".:~:/usr"

请注意,CDPATH不应导出该变量,因为您通常不希望此变量影响bash您从交互式会话运行的脚本。