Na página bash(1)
man:
ALIASES
Aliases allow a string to be substituted for a word when it is used as
the first word of a simple command. [...]
Portanto, bash
aliases não têm esse recurso, nem bash
tem uma capacidade pre-exec
trivial (mas veja aqui para um hack embora).
Como alternativa parcial , você pode usar a função conclusão , aqui está um ponto inicial mínimo:
function _comp_cd() {
local cur=${COMP_WORDS[COMP_CWORD]} # the current token
[[ $cur =~ \.\.\. ]] && {
cur=${cur/.../..\/..}
COMPREPLY=( $cur )
return
}
COMPREPLY=() # let default kick in
}
complete -o bashdefault -o default -F _comp_cd cd
Agora, quando você clicar na guia em um comando cd
e a palavra sob o cursor contiver "...", cada uma será substituída por "../ ..". A conclusão também sofre de um pequeno problema (excluindo sua complexidade) que você provavelmente pode adivinhar a partir do acima, você precisa especificá-lo em um comando por base de comando.
O pacote de conclusão do bash usa um manipulador de conclusão padrão, com carregamento direto das funções de conclusão para lidar com isso. Se você estiver se sentindo aventureiro, deverá poder modificar sua função% _filedir()
da função interna, que é usada para expansão geral de arquivos / diretórios, de modo a incluir uma substituição semelhante "...".
(Tudo isso lembra do shell NetWare, que fez "..." Just Work.)