PUSHD(1) fish-shell PUSHD(1)

# [NAME](#NAME)

pushd - push directory to directory stack

# [SYNOPSIS](#SYNOPSIS)

```
pushd DIRECTORY
```

# [DESCRIPTION](#DESCRIPTION)

The **pushd** function adds *DIRECTORY* to the top of the directory stack &lt;#directory-stack&gt; and makes it the current working directory. popd &lt;&gt; 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.

The **-h** or **--help** option displays help about using this command.

# [EXAMPLE](#EXAMPLE)

```
cd ~/dir1
pushd ~/dir2
pushd ~/dir3
# Working directory is now ~/dir3
# Directory stack contains ~/dir2 ~/dir1
pushd /tmp
# Working directory is now /tmp
# Directory stack contains ~/dir3 ~/dir2 ~/dir1
pushd +1
# Working directory is now ~/dir3
# Directory stack contains ~/dir2 ~/dir1 /tmp
popd
# Working directory is now ~/dir2
# Directory stack contains ~/dir1 /tmp
```

# [SEE ALSO](#SEE_ALSO)

- the dirs &lt;&gt; command to print the directory stack
- the cdh &lt;&gt; command which provides a more intuitive way to navigate to recently visited directories.

# [Copyright](#Copyright)

fish-shell developers

October 12, 2026 4.9

---

Document: pushd(1) from fish 4.9.3-r2 (Chainguard OS)
Source: https://github.com/fish-shell/fish-shell
