Repolode
jhspetersson

jhspetersson/fselect

一个命令行文件查找工具,用类 SQL 的查询语句搜索文件系统,替代复杂的 find 与 ls 参数。

Star
4,474
Fork
87
未关闭 Issue
6
最近提交
前天

这是什么?

fselect 是一个用 Rust 编写的命令行文件查找工具,使用宽松的类 SQL 语法筛选文件。你可以用 select 指定 name、path、size、modified 等列,用 from 指定目录,用 where 设置条件,并支持 group by、having、order by、limit 以及输出为 JSON、CSV 或 HTML。

除了按名称和大小过滤,fselect 还能搜索 zip 压缩包内的文件,遵循 .gitignore、.hgignore 和 .dockerignore 规则,并可按图片尺寸、EXIF 信息、音频标签、扩展属性、POSIX ACL、文件哈希和 MIME 类型筛选。子查询可用于跨多个目录比较结果,聚合与日期函数则便于对匹配文件做统计。

在处理大型目录树时,它可以在 Linux 上使用 plocate 索引、在 Windows 上使用 Everything 索引加速查找。项目还提供交互模式。

核心功能

  • 01使用宽松的类 SQL 语法对文件进行选择、过滤、分组和排序。
  • 02可搜索 zip 压缩包内的文件,并按 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 是什么?
一个命令行文件查找工具,用类 SQL 的查询语句搜索文件系统,替代复杂的 find 与 ls 参数。 fselect 是一个用 Rust 编写的命令行文件查找工具,使用宽松的类 SQL 语法筛选文件。你可以用 select 指定 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目