fselect ガイド:SQLでハードドライブを検索、ファイル検索の究極の姿

fselect:ファイル検索にSQLが出会うとき、すべてがエレガントになる

一言で言えば:「Dドライブのprojectsフォルダにある、100MBより大きく2024年1月以降に変更されたPDFファイル」のような複雑な条件でファイルを探す必要があるとき、fselect なら1つのSQLクエリで実行できます。

Everything は確かにファイル検索が高速ですが、そのクエリ機能は限られています。複数の条件を組み合わせたり、特定の方法で並べ替えたり、フォルダ間でファイル情報を集計したりする必要がある場合、Everything では不十分です。

そこで fselect の出番です。

fselectとは?

fselect はコマンドラインのファイル検索ツールで、最大の特徴は — SQL構文を使ってファイルを検索できることです。

はい、その通りです。SELECT、WHERE、ORDER BY — あのSQLキーワード — を使ってハードドライブを検索します。

fselect が解決する中核的な問題:

  • 複雑な条件の組み合わせ検索 → SQLで柔軟に表現
  • ファイル情報の集計 → count/avg/sumを直接使用
  • 条件に基づくバッチ操作 → 結果を他のコマンドに直接パイプ
  • 一貫したクロスプラットフォーム体験 → Mac/Linux/Windowsで同じ構文

使うとどれほど満足感があるか?

シナリオ1:複雑な条件検索

Everything で「1GB以上の動画ファイル」を検索するには、フィルターをクリックしていく必要があります。fselect なら1行で完了:

fselect "name, size, path FROM files WHERE type = 'video' AND size > 1g ORDER BY size DESC"

結果が直接リスト表示され、サイズの降順で並べられます。

シナリオ2:ディスク容量を空けるための大ファイル検索

ディスクがいっぱいで、クリーンアップする大きなファイルを探したい?

fselect "path, size FROM files WHERE size > 500m ORDER BY size DESC LIMIT 20"

ドライブ上の最大のファイル20個をリストアップします。

シナリオ3:ファイルのカウント

fselect "COUNT(*), LOWER(extension) FROM /path/to/project WHERE type = 'image' GROUP BY LOWER(extension)"

1つのコマンドで、プロジェクト内の各形式の画像がいくつあるかをカウント。

シナリオ4:詳細検索

C:\Work\Projects の中から、「report」というキーワードを含み、2024年以降に作成されたすべてのExcelファイルを検索したい?

fselect "name, path, created FROM C:/Work/Projects WHERE name LIKE '%report%' AND extension = 'xlsx' AND created > '2024-01-01'"

Everything ではこのレベルの詳細検索はできませんが、fselect なら簡単に処理できます。

類似ツールとの比較

項目fselectEverythingシステム検索
クエリ構文SQLキーワードキーワード
複雑な条件の組み合わせ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
検索速度高速(インデックス)非常に高速(NTFSインデックス)低速
統計集計対応非対応非対応
グラフィカルインターフェースなし(純コマンドライン)ありあり
学習曲線中〜高非常に低い低い

fselect が適している人:コマンドラインに慣れていて、特定の条件でファイルを検索する必要が頻繁にある人、またはファイル情報をバッチ集計する必要がある人。

ユーザーの声

  • Hacker News:「ついに誰かが、私が何年も欲しかった『SELECT * FROM files WHERE…』ツールを作ってくれた。」
  • 知乎プログラマー @ByteFlow:「fselect でファイル検索を初めて使ったとき、まるで神の視点を得たような気分だった。」
  • Reddit r/commandline:「fselect は、すべての開発者がWindows検索に望む姿そのもの。」

長所と短所

長所

  • SQL表現は非常に強力で、複雑なクエリも簡単
  • インデックス最適化により高速検索
  • クロスプラットフォーム対応(Windows/Mac/Linux)
  • 他のコマンドラインツールとパイプで連携可能
  • 集計、グループ化、並べ替えなどの高度な機能に対応

短所

  • 純コマンドラインで、グラフィカルインターフェースなし
  • SQL構文の学習が必要(基本的なSQLで十分だが)
  • デフォルトで自動インデックス化されず、ディレクトリの初回検索はやや遅い
  • 一部のシナリオで中国語ファイル名に問題が生じる可能性あり
  • 単にファイルを素早く見つけたい一般ユーザーには不向き

ダウンロードとインストール

Windowsインストール

方法1:Scoop経由(推奨)

scoop install fselect

方法2:Chocolatey経由

choco install fselect

方法3:GitHubからダウンロード

注意:ScoopまたはChocolateyでインストールすると、環境変数が自動的に設定されるため、手動ダウンロードよりはるかに便利です。

クイックスタート

  1. インストール後、ターミナル(CMDまたはPowerShell)を開く
  2. 最もシンプルな検索を試す:fselect "name FROM C:/Users" LIMIT 10
  3. タイプでフィルタリング:fselect "name, path FROM C:/Downloads WHERE type = 'image'"
  4. サイズでフィルタリング:fselect "name, size FROM C:/ WHERE size > 100m"
  5. 集計を試す:fselect "COUNT(*), extension FROM D:/Documents GROUP BY extension"

よく使うクエリテンプレート

# 最近変更された大ファイルを検索
fselect "name, path, modified FROM C:/ WHERE size > 500m AND modified > '2025-01-01'"

# ファイルタイプと合計サイズをカウント
fselect "COUNT(*), SUM(size), extension FROM D:/Projects GROUP BY extension ORDER BY COUNT(*) DESC"

# 拡張子とキーワードでファイルを検索
fselect "name, path FROM C:/Work WHERE extension IN ('pdf', 'docx') AND name LIKE '%report%'"

# 空のファイルを検索
fselect "name, path FROM E:/Backup WHERE size = 0"

まとめ

fselect はすべての人のためのツールではありません。一般ユーザーは Everything で十分です。しかし、開発者、データアナリスト、または頻繁に複雑な条件でファイルを探すパソコンヘビーユーザーにとって、fselect は Everything では実現できない柔軟性を提供します。

fselect "SELECT * FROM files WHERE..." を使ってハードドライブを調査することに慣れると、ファイルシステム全体がデータベースのように感じられます — 必要なものは何でも検索できます。

一言でまとめると:すべてはSQLにできる。ファイル検索も例外ではない。

ダウンロード

このページの一部のリンクはアフィリエイトリンクです。追加費用なしで少額の手数料を得る場合があります。すべての推奨は客観的なレビューに基づいています。