Quiero personalizar la funcionalidad del cd
comando 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 cd
se interpreta como la función misma y no como la cd
incorporada.
¿Cómo hago referencia al cd
incorporado 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.
pushd
no es compatible -P
. Pero tiene razón, como se muestra en la pregunta, se function cd
ve 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 ../
)?