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

LaT*_*ist 11 bash symlink

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

我想使用诸如cd project, 之类的命令nano project/file1.tex

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

Sté*_*las 15

大多数 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$
Run Code Online (Sandbox Code Playgroud)

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


jme*_*etz 9

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

export project=/home/me/project
Run Code Online (Sandbox Code Playgroud)

然后

cd $project
Run Code Online (Sandbox Code Playgroud)

或者

vim $project/file
Run Code Online (Sandbox Code Playgroud)

更新

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

export project=$HOME/project
Run Code Online (Sandbox Code Playgroud)

  • 使用 `zsh`,您还可以执行 `setopt cdablevars` 然后执行 `cd project` (4认同)