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

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

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

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

我是否必须编写指向所有目录的符号链接?

答案1

大多数 shell 都有一个CDPATH变量,cd可以查找要更改的目录,就像在$PATH.

因此,如果您将符号链接添加到~/projects目录中并执行操作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.

答案2

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

export project=/home/me/project

然后

cd $project

或者

vim $project/file

更新

正如 peterph 所指出的,您还可以组合这些(包括预定义变量),例如

export project=$HOME/project

相关内容