Как определить символическую ссылку, которую я могу использовать во всех моих каталогах

Можно ли написать символическую ссылку, чтобы независимо от того, где я на файловой системе, я могу использовать, например, project чтобы указать каталог home/me/project ? Я хотел бы использовать такие команды, как cd project , nano project/file1.tex и т. Д. Должен ли я писать символическую ссылку на все мои каталоги?

В большинстве оболочек есть переменная CDPATH которой cd может искать каталоги для изменения таким же образом, как и поиск исполняемых файлов в $PATH .

Поэтому, если вы добавите свои символические CDPATH=~/projects каталог ~/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 .

Вероятно, вы хотите использовать переменные вместо символических ссылок, например

 export project=/home/me/project 

тогда

 cd $project 

или

 vim $project/file 

ОБНОВИТЬ

Как указано peterph, вы также можете комбинировать эти (включая предопределенные переменные), например

 export project=$HOME/project