\section pushd pushd - push directory to directory stack
\subsection pushd-synopsis Synopsis
\fish{synopsis}
pushd [DIRECTORY]
\endfish
\subsection pushd-description Description
The `pushd` function adds `DIRECTORY` to the top of the directory stack and makes it the current working directory. `popd` will pop it off and return to the original directory.
Without arguments, it exchanges the top two directories in the stack.
`pushd +NUMBER` rotates the stack counter-clockwise i.e. from bottom to top
`pushd -NUMBER` rotates clockwise i.e. top to bottom.
See also `dirs` and `dirs -c`.
You may be interested in the `cdh` command which provides a more intuitive way to navigate to recently visited directories.
\subsection pushd-example Example
\fish
pushd /usr/src
# Working directory is now /usr/src
# Directory stack contains /usr/src
pushd /usr/src/fish-shell
# Working directory is now /usr/src/fish-shell
# Directory stack contains /usr/src /usr/src/fish-shell
pushd /tmp/
# Working directory is now /tmp
# Directory stack contains /tmp /usr/src /usr/src/fish-shell
pushd +1
# Working directory is now /usr/src
# Directory stack contains /usr/src /usr/src/fish-shell /tmp
popd
# Working directory is now /usr/src/fish-shell
# Directory stack contains /usr/src/fish-shell /tmp
\endfish