如何定义我可以在每个目录中使用的符号链接


11

是否可以设置符号链接,以便我可以project用来指向目录home/me/project,例如?这应该独立于文件系统中的位置。

我想使用诸如之类的命令cd projectnano project/file1.tex等等。

我必须写一个指向所有目录的符号链接吗?

Answers:


15

大多数shell都有一个CDPATH变量,该变量cd可以查找目录以与搜索可执行文件相同的方式进行更改$PATH

因此,如果将符号链接添加到~/projects目录中并执行do CDPATH=~/projects,就cd foo可以进入~/projects/foo

有了zsh,如果$var包含你可以做一个路径cd ~var,以cd该路径。有用的部分是当您的提示中包含以下%~内容时:

$ proj1=/usr/local proj2=/etc/apache2
$ PS1='%~$ '
$ cd ~proj1
~proj1$ cd ~proj2/sites-enabled
~proj2/sites-enabled$

使用setopt cdablevars,也可以cd proj1代替cd ~proj1


9

您可能想使用变量而不是符号链接,例如

export project=/home/me/project

然后

cd $project

要么

vim $project/file

更新

正如peterph所指出的,您也可以将它们结合起来(包括预定义变量),例如

export project=$HOME/project

1
甚至更好project=$HOME/project...
彼得

@peterph,甚至更简单~/project
斯特凡Chazelas

4
有了zsh,你也可以做setopt cdablevars,然后cd project
斯特凡Chazelas

@StephaneChazelas:我认为这是一个好主意-尽管它特定于zsh您也许可以将其添加为单独的答案?
jmetz 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.