一个广度优先的 UNIX find 命令替代品,先列出浅层文件,兼容 POSIX 与主流 find 用法。
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
安装带 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 是什么?
- 一个命令行文件查找工具,用类 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 数据每日更新。
相关项目
一款快速易用的命令行工具,用来按名称查找文件和目录,可替代 Unix 的 find 命令。
现代化的 ls 命令替代品,支持颜色、图标、Git 状态和树形显示,以单个 Rust 二进制文件分发。
一款跨 Linux、Mac 和 Windows 的命令行工具,用于查看文件系统使用情况,可视为功能增强版的 df。
用 Go 编写的快速磁盘占用分析工具,提供终端交互界面、非交互输出和可选的网页界面。