深い階層より浅い階層のファイルを先に表示する、POSIXやBSD/GNU find互換のUNIX findコマンドの幅優先版。
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
Cargo を使って Rust をインストールする
- 2
crates.io から fselect をインストールする
cargo install fselect - 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 の数値は毎日更新されます。
関連プロジェクト
ファイルやディレクトリを名前で探せる、高速で使いやすい Unix の find コマンド代替 CLI。
色、アイコン、Gitの状態、ツリー表示を備えた、Rust製のlsコマンドの現代的な代替ツール。
マウント済みファイルシステムの使用状況を一覧表示する、Linux・Mac・Windows対応のコマンドラインユーティリティ。dfにフィルタリング、ソート、テーブル・CSV・JSON出力を加えたツールです。
Go製の高速なターミナル向けディスク使用量分析ツール。対話型コンソールUI、非対話型出力、オプションのWebインターフェースを備えています。