# pushd - push directory to directory stack

## Synopsis

    pushd [DIRECTORY]

## 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.

## Example

    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

## See Also

- the dirs command to print the directory stack

- the cdh command which provides a more intuitive way to navigate to recently visited directories.