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?

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.

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

AspectfselectEverythingSystem Search
Query syntaxSQLKeywordsKeywords
Complex condition combinations⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Search speedFast (indexed)Very fast (NTFS index)Slow
Statistical aggregationSupportedNot supportedNot supported
Graphical interfaceNo (pure command line)YesYes
Learning curveMedium-highVery lowLow

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

Note: Installing via Scoop or Chocolatey automatically configures environment variables, much more convenient than manual download.

Quick Start

  1. After installation, open a terminal (CMD or PowerShell)
  2. Try the simplest search: fselect "name FROM C:/Users" LIMIT 10
  3. Filter by type: fselect "name, path FROM C:/Downloads WHERE type = 'image'"
  4. Filter by size: fselect "name, size FROM C:/ WHERE size > 100m"
  5. 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.

Download

Some links on this page are affiliate links. We may earn a small commission at no extra cost to you. All recommendations are based on objective review.