I want to customize the functionality of cd
command as per my needs.
I defined the following function -
function cd () { cd "$@" && pushd "$@"; }
The intent of this function is to automatically push the directory onto the stack so that it saves me the effort to manually type pushd .
every time.
However, the above function is an infinitely recursive function, as the call to cd
is interpreted to be the function itself and not the cd
built-in.
How do I reference the cd
built-in in this function?
I know that aliases can be escaped using \
. What is the way to escape functions or reference built-ins in a more explicit way?
Note: I do not want to rename my function to anything else.
alias cd=pushd
? What do you expect to happen when you cd to something that isn't an absolute path (eg,cd ../
)?pushd
does not support-P
. But you are right, as shown in the question thefunction cd
looks a bit wrong, as it changed directory twice.