scd - smart change of directory
scd shell function for changing to any directory with
a few keystrokes.
scd keeps history of the visited directories, which serves as an index of
the known paths. The directory index is updated after every
cd command in
the shell and can be also filled manually by running
scd -a. To switch to
scd needs few fragments of the desired path to match with
the index. A selection menu is displayed in case of several matches, with a
preference given to recently visited paths.
scd can create permanent
directory aliases, which appear as named directories in zsh session.
scd can be used with bash, dash or tcsh
shells and is also available as Vim plugin and
IPython extension. For installation details, see
scd [options] [pattern1 pattern2 ...]
- -a, --add
- add specified directories to the directory index.
- remove current or specified directories from the index.
- -r, --recursive
- apply options --add or --unindex recursively.
- create alias for the current or specified directory and save it to ~/.scdalias.zsh.
- remove ALIAS definition for the current or specified directory from ~/.scdalias.zsh.
- -A, --all
- include all matching directories. Disregard matching by directory alias and filtering of less likely paths.
- show matching directories and exit.
- -v, --verbose
- display directory rank in the selection menu.
- -h, --help
- display this options summary and exit.
# Index recursively some paths for the very first run scd -ar ~/Documents/ # Change to a directory path matching "doc" scd doc # Change to a path matching all of "a", "b" and "c" scd a b c # Change to a directory path that ends with "ts" scd "ts$" # Show selection menu and ranking of 20 most likely directories scd -v # Alias current directory as "xray" scd --alias=xray # Jump to a previously defined aliased directory scd xray
- time-stamped index of visited directories.
- scd-generated definitions of directory aliases.
- path to the scd index file (by default ~/.scdhistory).
- maximum number of entries in the index (5000). Index is trimmed when it exceeds SCD_HISTSIZE by more than 20%.
- maximum number of items for directory selection menu (20).
- mean lifetime in seconds for exponential decay of directory likelihood (86400).
- threshold for cumulative directory likelihood. Directories with a lower likelihood compared to the best match are excluded (0.005).
command script file where scd writes the final
cdcommand. This variable must be defined when scd runs in its own process rather than as a shell function. It is up to the scd caller to use the output in SCD_SCRIPT.