Change the current directory, and push the old current directory onto the directory stack.

pushd [ -sLP ] [ arg ]


pushd [ -sLP ] old new

Change the current directory to arg. If arg is not specified, change to the second directory on the stack (that is, exchange the top two entries), or change to $HOME if the PUSHD_TO_HOME option is set or if there is only one entry on the stack. Otherwise, arg is interpreted as it would be by cd.The meaning of old and new is the same as for cd.

pushd [ -sLP ] {+|-}n

Changes directory by rotating the directory list. An argument of the form +n identifies a stack entry by counting from the left of the list shown by the dirs command, starting with zero. An argument of the form -n counts from the right. If the PUSHD_MINUS option is set, the meanings of + and - in this context are swapped.

If the option PUSHD_SILENT is not set, the directory stack will be printed after a pushd is performed.

The options -s, -L and -P have the same meanings as for the cd builtin.