fselect Guide: Search Your Hard Drive with SQL, The Ultimate Form of File Search
fselect: When File Search Meets SQL, Everything Becomes Elegant
One-sentence solution: When you need to find files with complex conditions like “PDF files larger than 100MB, modified after January 2024, in the projects folder on D drive,” fselect lets you do it with a single SQL query.
Everything is indeed fast for searching files, but its query capabilities are limited. When you need to combine multiple conditions, sort in specific ways, or even aggregate file information across folders, Everything falls short.
That’s where fselect comes in.
What is fselect?
fselect is a command-line file search tool with one major feature — it lets you use SQL syntax to search for files.
Yes, you read that right. SELECT, WHERE, ORDER BY — those SQL keywords — to search your hard drive.
The core problems fselect solves:
- Complex conditional combination searches → express flexibly with SQL
- File information aggregation → direct count/avg/sum
- Batch operations based on conditions → pipe results directly to other commands
- Consistent cross-platform experience → same syntax on Mac/Linux/Windows
How Satisfying Is It to Use?
Scenario 1: Complex Conditional Search
With Everything, searching for “video files larger than 1GB” requires clicking through filters. With fselect, one line does it:
fselect "name, size, path FROM files WHERE type = 'video' AND size > 1g ORDER BY size DESC"
Results listed directly, sorted by size descending.
Scenario 2: Find Large Files to Clean Disk Space
Disk full and want to find large files to clean up?
fselect "path, size FROM files WHERE size > 500m ORDER BY size DESC LIMIT 20"
Lists the 20 largest files on your drive, not missing a single one.
Scenario 3: Count Files
fselect "COUNT(*), LOWER(extension) FROM /path/to/project WHERE type = 'image' GROUP BY LOWER(extension)"
One command to count how many images of each format are in your project.
Scenario 4: Deep Search
Want to find all Excel files containing the keyword “report” in C:\Work\Projects, created after 2024?
fselect "name, path, created FROM C:/Work/Projects WHERE name LIKE '%report%' AND extension = 'xlsx' AND created > '2024-01-01'"
Everything can’t do this level of detail, but fselect handles it easily.
Comparison with Similar Tools
| Aspect | fselect | Everything | System Search |
|---|---|---|---|
| Query syntax | SQL | Keywords | Keywords |
| Complex condition combinations | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| Search speed | Fast (indexed) | Very fast (NTFS index) | Slow |
| Statistical aggregation | Supported | Not supported | Not supported |
| Graphical interface | No (pure command line) | Yes | Yes |
| Learning curve | Medium-high | Very low | Low |
fselect is for: You’re comfortable with the command line, frequently need to find files by specific conditions, or need to batch aggregate file information.
User Feedback
- Hacker News: “Finally, someone made the ‘SELECT * FROM files WHERE…’ tool I’ve wanted for years.”
- Zhihu programmer @ByteFlow: “The first time I used fselect to search files, it felt like having a god’s-eye view.”
- Reddit r/commandline: “fselect is what every developer wishes Windows search could be.”
Pros and Cons Summary
Pros
- SQL expression is extremely powerful, complex queries are effortless
- Fast search speed with index optimization
- Cross-platform support (Windows/Mac/Linux)
- Can be piped with other command-line tools
- Supports aggregation, grouping, sorting and other advanced features
Cons
- Pure command line, no graphical interface
- Requires learning SQL syntax (though basic SQL is enough)
- Doesn’t auto-index by default, first search in a directory is slightly slower
- Chinese filename support may have issues in some scenarios
- Not suitable for regular users who just want to quickly find a file
Download and Installation
Windows Installation
Method 1: Via Scoop (recommended)
scoop install fselect
Method 2: Via Chocolatey
choco install fselect
Method 3: Download from GitHub
- https://github.com/jhspetersson/fselect/releases
- Download the binary for your system, extract and add to PATH
Note: Installing via Scoop or Chocolatey automatically configures environment variables, much more convenient than manual download.
Quick Start
- After installation, open a terminal (CMD or PowerShell)
- Try the simplest search:
fselect "name FROM C:/Users" LIMIT 10 - Filter by type:
fselect "name, path FROM C:/Downloads WHERE type = 'image'" - Filter by size:
fselect "name, size FROM C:/ WHERE size > 100m" - Try aggregation:
fselect "COUNT(*), extension FROM D:/Documents GROUP BY extension"
Common Query Templates
# Find recently modified large files
fselect "name, path, modified FROM C:/ WHERE size > 500m AND modified > '2025-01-01'"
# Count file types and total sizes
fselect "COUNT(*), SUM(size), extension FROM D:/Projects GROUP BY extension ORDER BY COUNT(*) DESC"
# Find files by extension and keyword
fselect "name, path FROM C:/Work WHERE extension IN ('pdf', 'docx') AND name LIKE '%report%'"
# Find empty files
fselect "name, path FROM E:/Backup WHERE size = 0"
Conclusion
fselect isn’t for everyone. Regular users are fine with Everything. But if you’re a developer, data analyst, or heavy computer user who frequently needs to find files with complex conditions, fselect gives you flexibility that Everything can’t match.
Once you get used to using fselect "SELECT * FROM files WHERE..." to survey your hard drive, your entire file system starts to feel like a database — search anything you want.
One-sentence summary: Everything can be SQL, and file search is no exception.