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"
.