Você pode copiar o corpo da definição cd
em uma nova função com o nome prev_cd
. Use declare -f cd
para obter essa definição e, em seguida, eval
para redefinir isso.
definition_prev_cd="prev_$(declare -f cd)"
eval "${definition_prev_cd}"
unset definition_prev_cd # clean up, no reason to leave this string around
cd () {
prev_cd "$@"
echo "do my own thing"
}
Você pode adicionar algumas verificações ou criar uma função genérica para copiar funções arbitrárias, mas isso deve ser suficiente para que você resolva o problema descrito ...