Skip to main content

fzf — Fuzzy Finder Documentation

fzf is a general-purpose command-line fuzzy finder. It reads a list of items from standard input, lets you interactively filter them with a fuzzy search, and outputs the selection to standard output. It integrates with your shell, editor, and any command that produces line-based output.

Who This Track Is For
  • Server operators who navigate large directory trees and process lists of files
  • Developers who want faster shell history, file, and git branch navigation
  • DevOps engineers building interactive shell scripts and tooling pipelines
  • Anyone replacing grep | head workflows with interactive fuzzy filtering
What You Will Build
  • A fully configured fzf shell integration (CTRL-T, CTRL-R, ALT-C)
  • Custom preview windows with bat, tree, and delta
  • Reusable shell functions for git, Docker, SSH, and process management
  • A personal FZF toolkit deployable across any server via dotfiles
How To Use This Track
  • Modules 1–2 are fundamentals — understand these before anything else
  • Modules 3–4 cover shell integration and search syntax
  • Modules 5–6 are customization (options, preview, colors)
  • Modules 7–9 cover advanced usage, scripting, and integrations
  • Modules 10–11 are real-world workflows and the cheatsheet

Learning Path​

ModuleFocusLessons
1. IntroductionWhat fzf is, philosophy, installation3
2. Core UsageBasic syntax, keybindings, output handling3
3. Search SyntaxFuzzy, exact, regex, operators, negation2
4. Shell IntegrationCTRL-T, CTRL-R, ALT-C, fish, completions3
5. CustomizationFZF_DEFAULT_OPTS, layout, colors, bindings3
6. Preview Windowbat, tree, delta, dynamic preview2
7. Advanced UsageMulti-select, reload, transforms, headers3
8. ScriptingShell functions, pipelines, reusable fzf tools2
9. IntegrationsGit, Neovim, Docker, SSH, tmux, kubectl3
10. Real-World WorkflowsDevOps, sysadmin, development patterns2
11. CheatsheetKeys, syntax, options, and variables1

How fzf Works​

fzf vs Other Tools​

ToolInteractiveFuzzyScriptablePreviewShell integration
fzf✅✅✅✅✅
grep❌❌✅❌❌
find❌❌✅❌❌
dmenu✅✅Limited❌❌
rofi✅✅Limited✅❌
peco✅✅✅❌❌

Quick Start​

# Install (Debian/Ubuntu)
sudo apt install -y fzf

# Or latest via git
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install

# Basic usage: pipe any list into fzf
ls | fzf
find . -type f | fzf
cat /etc/passwd | fzf

# Open a file with fzf selection
nvim $(fzf)
cat $(fzf)
warning

fzf reads from stdin and writes to stdout. Between those two ends, it gives you an interactive TUI. Everything else — what feeds it and what consumes its output — is up to your shell.

Next Step​

Start with What is fzf.