mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-23 10:43:32 +08:00
9d2b53450a
The existing implementation grows the $dirprev array without bounds. Besides causing what would appear to be a memory leak it also makes the nextd and prevd commands more expensive than they need to be. It also makes it harder to create a useful "menu" cd command. In addition to implementing a reasonable limit on the size of the $dirprev array I've reformatted the code using fish_indent. Update the documentation to include mentions of the $dirprev and $dirnext variables as well as the limit on how much directory history is kept. Fixes 2836
28 lines
1.1 KiB
Plaintext
28 lines
1.1 KiB
Plaintext
\section cd cd - change directory
|
|
|
|
\subsection cd-synopsis Synopsis
|
|
\fish{synopsis}
|
|
cd [DIRECTORY]
|
|
\endfish
|
|
|
|
\subsection cd-description Description
|
|
`cd` changes the current working directory.
|
|
|
|
If `DIRECTORY` is supplied, it will become the new directory. If no parameter is given, the contents of the `HOME` environment variable will be used.
|
|
|
|
If `DIRECTORY` is a relative path, the paths found in the `CDPATH` environment variable array will be tried as prefixes for the specified path.
|
|
|
|
Note that the shell will attempt to change directory without requiring `cd` if the name of a directory is provided (starting with `.`, `/` or `~`, or ending with `/`).
|
|
|
|
Fish also ships a wrapper function around the builtin `cd` that understands `cd -` as changing to the previous directory. See also <a href="commands.html#prevd">`prevd`</a>. This wrapper function maintains a history of the 25 most recently visited directories in the `$dirprev` and `$dirnext` global variables.
|
|
|
|
\subsection cd-example Examples
|
|
|
|
\fish
|
|
cd
|
|
# changes the working directory to your home directory.
|
|
|
|
cd /usr/src/fish-shell
|
|
# changes the working directory to /usr/src/fish-shell
|
|
\endfish
|