Você provavelmente está procurando algo como a variável CDPATH shell.
A variável CDPATH age como PATH , mas para o comando cd .
Definindo com algo como
CDPATH=".:~:~/projects:~/music"
permitiria que você dissesse
cd ricky_martin
em qualquer lugar, e percorreria os caminhos do diretório : -separated no valor $CDPATH em ordem até encontrar um subdiretório chamado ricky_martin em algum lugar (possivelmente ~/music/ricky_martin ) e, em seguida, cd there.
Da mesma forma
cd world_domination
pode levá-lo a ~/projects/world_domination se houver um subdiretório desse tipo. Se world_domination também existisse no diretório atual, esse diretório seria selecionado primeiro, como ocorre anteriormente em $CDPATH (o ponto na primeira posição).
Também seria permitido fazer
cd proj1/tests
de qualquer lugar para obter ~/projects/proj1/tests se tal diretório existisse (com o valor acima de $CDPATH , a menos que proj/tests não existisse no diretório atual ou em seu diretório pessoal).
Observe que a variável shell CDPATH não deve ser exportada, pois isso pode confundir seriamente alguns scripts.
A variável CDPATH está documentada no manual bash ( man bash ):
CDPATH
The search path for the cd command. This is a colon-separated
list of directories in which the shell looks for destination
directories specified by the cd command. A sample value is
".:~:/usr".