fzf is a general-purpose command-line fuzzy finder written in Go by Junegunn Choi. It’s an interactive filter program for any kind of list - files, command history, processes, hostnames, bookmarks, git commits, and more. With over 72k GitHub stars, fzf has become an essential tool for command-line productivity and is widely regarded as one of the most useful terminal utilities ever created.
If you’re looking to supercharge your command-line workflow with lightning-fast fuzzy searching capabilities, fzf is the perfect tool. However, getting the latest version on Debian can be challenging since the official repositories often contain outdated versions that lack the newest features and performance improvements.
Fortunately, the unofficial debian.griffo.io
repository provides the latest fzf packages, ensuring you get all the newest features and optimizations as soon as they’re available.
fzf stands out as one of the most versatile and powerful command-line tools available:
Ctrl-T
: Find files and directoriesCtrl-R
: Search command historyAlt-C
: Change directory with fuzzy searchThe debian.griffo.io
repository offers significant advantages for fzf installation:
Before we begin, make sure you have:
sudo
privilegescurl
installed (install with sudo apt install curl
if needed)First, add the GPG key and repository to your system:
# Add the GPG key
curl -sS https://debian.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/debian.griffo.io.gpg
# Add the repository
echo "deb https://debian.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/debian.griffo.io.list
Update your package lists to include the new repository:
sudo apt update
Now install the latest version of fzf:
sudo apt install fzf
Enable fzf’s powerful shell integration features:
# For bash users
echo 'eval "$(fzf --bash)"' >> ~/.bashrc
# For zsh users
echo 'source <(fzf --zsh)' >> ~/.zshrc
# For fish users
echo 'fzf --fish | source' >> ~/.config/fish/config.fish
# Reload your shell configuration
source ~/.bashrc # or ~/.zshrc
Confirm that fzf is installed and working:
fzf --version
You should see output similar to:
0.65.1 (linux_amd64)
Now that fzf is installed, let’s explore its powerful features:
Start with simple file finding:
# Basic file finder
fzf
# Find and edit files
vim $(fzf)
# Find files with preview
fzf --preview 'cat {}'
# Find files with syntax highlighting (requires bat)
fzf --preview 'bat --color=always {}'
With shell integration enabled, you get these powerful key bindings:
Ctrl-T
: Find files and directories - inserts selected items into command lineCtrl-R
: Search command history - fuzzy search through your bash/zsh historyAlt-C
: Change directory - fuzzy find and cd into directoriesLeverage fzf’s power for complex tasks:
# Search and kill processes
ps aux | fzf | awk '{print $2}' | xargs kill
# Interactive git commit browser
git log --oneline | fzf | awk '{print $1}' | xargs git show
# Interactive ripgrep with live reload
rg --color=always --line-number . | fzf --ansi
# Multi-select mode for batch operations
find . -type f | fzf -m
# Search and open files in specific directories
find ~/Documents -type f | fzf --preview 'head -20 {}'
fzf works excellently with other modern command-line tools:
# Use with fd for respecting .gitignore
fd . | fzf
# Interactive directory jumping with zoxide
z $(zoxide query -l | fzf)
# Enhanced file listing with eza
eza -la | fzf
# Search through bat-highlighted files
find . -type f | fzf --preview 'bat --color=always {}'
Customize fzf’s appearance and behavior:
# Custom color scheme
export FZF_DEFAULT_OPTS='--color=fg:#f8f8f2,bg:#282a36,hl:#bd93f9'
# Custom preview window
export FZF_DEFAULT_OPTS='--preview "bat --color=always {}" --preview-window=right:60%'
# Use fd as default command
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
# Custom key bindings
export FZF_DEFAULT_OPTS='--bind "ctrl-y:execute-silent(echo {} | pbcopy)"'
Recent fzf releases include exciting improvements:
Keep fzf up-to-date with regular system updates:
sudo apt update && sudo apt upgrade
The repository is updated within hours of new fzf releases, ensuring you always have access to the latest features and performance improvements.
The debian.griffo.io
repository includes many other modern command-line tools that work great with fzf:
You can explore all available packages at debian.griffo.io.
If you’re interested in other development tools available from the same repository, check out our guides on How to Install uv on Debian for Python package management, How to Install Zig on Debian for systems programming, and How to Install Updated eza on Debian for a modern ls replacement. All these tools use the same repository and installation process.
If you encounter GPG key problems:
# Remove old key if it exists
sudo rm -f /etc/apt/trusted.gpg.d/debian.griffo.io.gpg
# Add the current key
curl -sS https://debian.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/debian.griffo.io.gpg
If APT can’t find the fzf package:
sudo apt update
after adding the repositorycat /etc/apt/sources.list.d/debian.griffo.io.list
If key bindings aren’t working:
which fzf
If you need to remove fzf:
# Remove fzf package
sudo apt remove fzf
# Remove shell integration (edit your shell config files)
# Remove the fzf lines from ~/.bashrc, ~/.zshrc, or ~/.config/fish/config.fish
# Remove the repository (optional)
sudo rm /etc/apt/sources.list.d/debian.griffo.io.list
sudo rm /etc/apt/trusted.gpg.d/debian.griffo.io.gpg
sudo apt update
Installing the latest fzf on Debian doesn’t have to be complicated. The debian.griffo.io
repository provides an easy, maintainable way to install and keep fzf up-to-date on your Debian system. With fzf installed, you get:
Whether you’re a developer who needs to quickly navigate large codebases, a system administrator managing multiple servers, or just someone who wants to be more productive in the terminal, fzf is an indispensable tool that will transform your command-line experience.
The repository is maintained as an unofficial community project and provides packages that aren’t available in the official Debian repositories. It’s a valuable resource for Debian users who want access to modern command-line tools without the hassle of manual compilation.
Happy fuzzy finding with fzf!
Disclaimer: The debian.griffo.io repository is an unofficial community project and is not affiliated with the official Debian project or the fzf development team.