fselect:用类SQL语句查找文件

fselect 在 GitHub 上已经拿到 4,437 Star 了。

fselect:用类SQL语句查找文件

fselect 在 GitHub 上已经拿到 4,437 Star 了。

这是一个文件查找工具,支持用类SQL语法查询本地文件。

1、这工具是干嘛的

fselect 用来替代传统的 find 和 ls 命令,用户可以用接近自然语言的类SQL语法编写查询条件,查找符合要求的文件。它不追求完全替换传统工具,专注于提供更灵活的查询能力。

正文顶部截图

2、核心功能

它支持复杂查询,可通过子查询对比多个目录下的文件结果。内置聚合、统计、日期等多种函数,能直接搜索压缩包内的文件。支持 .gitignore、.hgignore、.dockerignore 规则过滤文件。

可查询图片的宽高、EXIF信息,MP3文件的元数据,文件扩展属性、POSIX ACL、Linux capabilities,文件哈希值、MIME类型等属性。提供常见文件类型的查询快捷方式,有交互模式,支持CSV、JSON等多种输出格式。

README区域截图

3、安装方式

支持多平台安装:

  • 源码安装:安装Rust环境后,执行 cargo install fselect
  • Debian/Ubuntu:可直接下载deb包安装
  • Arch Linux:可从AUR源安装
  • NixOS:nixpkgs仓库已包含该工具
  • 其他Linux:提供musl静态编译版本
  • Windows:支持预编译二进制文件,也可通过winget、Chocolatey、Scoop安装
  • Mac:可通过Homebrew、MacPorts安装

4、使用方式

基础查询语法为:fselect [ARGS] COLUMN[, COLUMN…] [from ROOT[, ROOT…]] [where EXPR] [group by COLUMNS] [order by COLUMNS] [limit N] [offset N] [into FORMAT]

查找指定目录下的cfg和tmp文件:fselect size, path from /home/user where name = '.cfg' or name = '.tmp'

查询大于2G的文件:fselect size, abspath from ./tmp where size gt 2g

支持子查询、聚合函数、正则匹配、日期查询、多目录搜索、深度限制、符号链接跟随等特性。

开源地址:https://github.com/jhspetersson/fselect