LinuxCommandLibrary

fasd

Navigate to recent and frequent files/directories

SYNOPSIS

fasd [-V] | [-h] | [--init shell] | [-s|-l|-L|-R|-i|-a|-f|-d|-F|-S|-D] [query]
Shims: z, j, a, v, f [options] [query]

PARAMETERS

-V
    Print version information and exit

-h
    Display help and exit

--init shell
    Print shell init code (auto, bash, zsh, fish, tcsh)

-s
    Shell-escape paths (default for shims)

-l
    List matching entries (no action)

-L
    List full paths (no action)

-R
    Use recency from cache in scoring

-i
    Interactive multi-select with $PAGER

-a
    Match files and directories

-f
    Match files only

-d
    Match directories only

-F
    Match full paths (slower)

-S
    Case-sensitive matching

-D
    Interpret query as regex delimiter

DESCRIPTION

Fasd is a command-line tool designed to boost shell productivity by providing quick, intelligent access to frequently used files and directories. It tracks your command history (cd, vim, open, etc.) and builds a database scoring items by frequency and recency. Access them via fuzzy matching queries, where partial names suffice.

Unlike basic tab completion, fasd ranks results contextually, favoring recent or often-used paths. It offers shims like z (cd to directories), j (open files), a (any), v ($EDITOR), and f (print). For example, typing z doc cds to your most relevant ~/Documents folder.

Fasd is lightweight, with a simple cache (~/.fasd) updated on-the-fly. It's customizable via hooks and supports interactive selection. Ideal for developers and power users navigating complex directory trees without full paths. Requires shell initialization for shims.

CAVEATS

Requires shell init (eval "$(fasd --init auto)" in .bashrc); cache (~/.fasd) grows with usage; no built-in pruning; shims override common commands if not careful; performance dips with millions of entries.

INSTALLATION

apt install fasd (Debian/Ubuntu), brew install fasd (macOS), or git clone https://github.com/clvv/fasd

SETUP

Add to ~/.bashrc: eval "$(fasd --init debian-auto)" or posh-auto. Hooks: fasd_cd() for custom cd tracking.

ALIASES

z=fasd_cd -d, j=$EDITOR -a, v=$VISUAL, f=fasd -a (customizable)

HISTORY

Developed by Changwoo Ryu (clvv) starting 2013; inspired by autojump and z.sh. Open-source on GitHub (MIT license). Actively maintained with ports to most shells; popular in dotfiles and minimal setups.

SEE ALSO

autojump(1), cd(1), find(1), locate(1)

Copied to clipboard