A fast and efficient command-line utility for finding files and directories by name pattern with configurable depth limits.
- 🔍 Fast file and directory search using
fd(withfindfallback) - 📁 Dual commands:
ffffor files,ffdfor directories - 🎯 Pattern matching with case-insensitive search
- 🏔️ Configurable depth limits (default: 5 levels)
- 🚀 Infinite depth option for complete directory traversal
- 🛡️ Input validation and error handling
- ⚙️ Customizable configuration via config.sh
- 🎨 Colored output and user-friendly messages
-
Run the installation script:
./install.sh
-
Ensure your
~/bindirectory is in your PATH:export PATH="$PATH:$HOME/bin"
-
Verify installation:
which fff ffd
# Find files matching pattern (case-insensitive)
fff myname
# Find directories matching pattern
ffd myname
# Search with custom depth
fff myname -5
# Search with infinite depth
fff myname -i
# Show active runtime settings (including excluded dirs)
fff myname --verbose
# Show help
fff --help# Find all Python files in current directory (5 levels deep)
fff py
# Find all README files with unlimited depth
fff readme -i
# Find all 'src' directories (5 levels deep)
ffd src -5
# Find files with spaces in name
fff "my file"
# Find configuration files
fff cfgEdit config.sh to customize defaults:
# Maximum search depth (1-20)
DEFAULT_MAX_DEPTH=5
# Case sensitivity
CASE_SENSITIVE=false| Option | Description |
|---|---|
<pattern> |
Search pattern (automatically wrapped with *pattern*) |
-<depth> |
Maximum search depth (e.g., -5 for depth 5) |
-i |
Infinite depth (no maxdepth limit) |
-v, --verbose |
Print active runtime settings |
-h, --help |
Show usage information |
- Patterns are automatically wrapped with
*for flexible matching - Search is case-insensitive by default
- Wildcards
*and?in search patterns are treated literally - Spaces in patterns should be quoted:
fff "my file"
- Input validation for patterns and depth values
- Reasonable depth limits (1-20) to prevent system overload
- Error control with
set -euo pipefail - Maximum 20 results for performance
- Default excluded directories:
.git,.hg,.svn,.venv,venv
FAST_FINDER_EXCLUDE_DIRS: comma-separated directory names to exclude (default:.git,.hg,.svn,.venv,venv)FAST_FINDER_INCLUDE_HIDDEN:true|false(default:true)FAST_FINDER_FOLLOW_SYMLINKS:true|false(default:true)FAST_FINDER_COLOR:auto|always|never(default:auto)automeans color is shown only when output is a terminal (TTY)
FAST_FINDER_DEBUG:true|false(default:false)- prints backend, resolved settings, and the effective search command
FAST_FINDER_MAX_RESULTS: positive integer result cap (default:20)
fast-finder.sh- Main search enginebin/fff- File finder wrapperbin/ffd- Directory finder wrapperconfig.sh- Configuration settingsinstall.sh- Installation script
This is a free and open-source utility.