Quiero personalizar la funcionalidad del cdcomando según mis necesidades.
Definí la siguiente función:
function cd () { cd "$@" && pushd "$@"; }
La intención de esta función es empujar automáticamente el directorio a la pila para que me ahorre el esfuerzo de escribir manualmente pushd .cada vez.
Sin embargo, la función anterior es una función infinitamente recursiva, ya que la llamada a cdse interpreta como la función misma y no como la cdincorporada.
¿Cómo hago referencia al cdincorporado en esta función?
Sé que los alias se pueden escapar usando \. ¿Cuál es la forma de escapar de las funciones o hacer referencia a las funciones incorporadas de una manera más explícita?
Nota: No quiero cambiar el nombre de mi función a otra cosa.
pushdno es compatible -P. Pero tiene razón, como se muestra en la pregunta, se function cdve un poco mal, ya que cambió el directorio dos veces.
alias cd=pushd? ¿Qué esperas que suceda cuando cd a algo que no es un camino absoluto (por ejemplo,cd ../)?