Repolode
jhspetersson

jhspetersson/fselect

findやlsのオプションの代わりに、SQL風のクエリでファイルシステムを検索できるコマンドラインツール。

スター
4,475
フォーク
87
未解決の Issue
6
最終コミット
17 時間前

これは何?

fselectは、柔軟なSQL風構文でファイルを検索できるRust製のコマンドラインツールです。name、path、size、modifiedなどの列を選び、from句でディレクトリを指定し、where句で絞り込みます。group by、having、order by、limitにも対応し、JSON、CSV、HTML形式で出力できます。

基本的な名前やサイズによる絞り込みに加え、zipアーカイブ内の検索、.gitignore、.hgignore、.dockerignoreファイルのルールの適用にも対応しています。また、画像の寸法、EXIFデータ、音声タグ、拡張属性、POSIX ACL、ファイルハッシュ、MIMEタイプによる絞り込みも可能です。サブクエリを使えば複数ディレクトリの検索結果を比較でき、集計関数や日付関数を使って一致したファイルの統計を取得できます。

大規模なディレクトリツリーでは、LinuxのplocateインデックスやWindowsのEverythingインデックスを任意で利用し、検索を高速化できます。インタラクティブモードも利用できます。

主な機能

  • 01ファイルの選択、絞り込み、グループ化、並べ替えに、柔軟なSQL風構文を使用できます。
  • 02zipアーカイブ内を検索でき、EXIF、画像の寸法、音声タグで絞り込めます。
  • 03.gitignore、.hgignore、.dockerignoreのルールに対応しています。
  • 04ファイルハッシュ、MIMEタイプ、拡張属性、パーミッション、所有者で絞り込めます。
  • 05複数ディレクトリを対象としたサブクエリと集計関数に対応しています。
  • 06検索結果をJSON、CSV、HTML、プレーンテキストで出力できます。

ユースケース

  • 複数のディレクトリから容量の大きいファイルや古いファイルを見つけ、ディスク容量を確保する。
  • サーバー上で危険なパーミッションが設定されたファイルや、想定外の所有者のファイルを監査する。
  • フォルダー間でハッシュを比較し、重複ファイルを探す。
  • 寸法、再生時間、タグでメディアファイルを一覧表示し、ライブラリを整理する。

クイックスタート

  1. 1

    Cargo を使って Rust をインストールする

  2. 2

    crates.io から fselect をインストールする

    cargo install fselect
  3. 3

    クエリを実行して、ファイルをサイズとパスで一覧表示する

    fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'

使う前に知っておきたいこと

  • .gitignore、.hgignore、.dockerignore のサポートは実験的とされています。
  • アーカイブ内の検索で現在サポートされているのは zip ファイルのみです。

収録されている特集

トピック

よくある質問

fselect とは?
findやlsのオプションの代わりに、SQL風のクエリでファイルシステムを検索できるコマンドラインツール。 fselectは、柔軟なSQL風構文でファイルを検索できるRust製のコマンドラインツールです。name、path、size、modifiedなどの列を選び、from句でディレクトリを指定し、where句で絞り込みます。group by、having、order by、limitにも対応し、JSON、CSV、HTML形式で出力できます。
fselect は無料で使えますか?ライセンスは?
fselect は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
fselect は今もメンテナンスされていますか?
活発にメンテナンス中。fselect の最終コミットは 2026年11月6日 です。
fselect は何に使えますか?
複数のディレクトリから容量の大きいファイルや古いファイルを見つけ、ディスク容量を確保する。 サーバー上で危険なパーミッションが設定されたファイルや、想定外の所有者のファイルを監査する。 フォルダー間でハッシュを比較し、重複ファイルを探す。 寸法、再生時間、タグでメディアファイルを一覧表示し、ライブラリを整理する。
fselect のインストール方法は?
Cargo を使って Rust をインストールする crates.io から fselect をインストールする: cargo install fselect クエリを実行して、ファイルをサイズとパスで一覧表示する: fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
fselect はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/jhspetersson/fselect

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

マウント済みファイルシステムの使用状況を一覧表示する、Linux・Mac・Windows対応のコマンドラインユーティリティ。dfにフィルタリング、ソート、テーブル・CSV・JSON出力を加えたツールです。

2888+2 今週64RustMIT活発にメンテナンス更新 4 日前

正確さ・速度・シンプルさを重視したRust製jqクローン。jq互換CLIとしてもライブラリとしても使えます。

3825+10 今週127RustMIT更新 8 日前