Como você está usando o Bash como seu shell, é possível usar o shell CDPATH
variável. O Manual de Bash descreve-o como
a search path: each directory name in CDPATH is searched for directory, with alternative directory names in CDPATH separated by a colon (‘:’)
Você pode adicionar a seguinte linha ao seu .bashrc
:
CDPATH=".:$HOME"
Se você digitar mais tarde cd dev
, o diretório de trabalho atual será procurado por um subdiretório chamado dev
:
- Se esse diretório existir, ele será alterado para esse diretório (como o comando
cd
builtin geralmente funciona). - Se não, ele procuraria seu diretório pessoal (
~
), localizaria o link simbólico (percebesse que é um link para um diretório) e mudaria para o diretório de destino (apontado por~/dev
).
Se você quisesse dar preferência aos diretórios dentro de seu diretório home, você poderia listar $HOME
primeiro em seu CDPATH
( "$HOME:."
) mas eu aconselharia strongmente contra isso, já que isso quebra o princípio de menor surpresa : o comportamento resultante difere muito do padrão.