跨平台、基于 OpenGL 的 GPU 加速终端模拟器,标签页和分屏交给 tmux 等工具完成。
tavianator/bfs
一个广度优先的 UNIX find 命令替代品,先列出浅层文件,兼容 POSIX 与主流 find 用法。
- Star
- 1,282
- Fork
- 44
- 未关闭 Issue
- 15
- 最近提交
- 9天前
这是什么?
bfs 是 UNIX find 命令的一个变体,它按广度优先而非深度优先遍历目录树。它从最浅层的文件开始逐层列出,因此不必等它把无关的深层子树全部遍历完,就能找到目标文件。
它力求与多种 find 实现保持兼容,包括 POSIX、GNU、FreeBSD、OpenBSD、NetBSD 和 macOS 版本。在此基础上,它让常见操作更省力:参数位置更灵活,选项拼写错误会给出修正建议,静态分析还能提示结果被忽略的表达式。它新增了 -exclude 运算符来整棵跳过匹配的子树,并提供 -nohidden 用于跳过隐藏文件。
bfs 使用 C 语言编写,已进入众多 Linux、macOS 和 BSD 的软件包管理器,通过 configure 和 make 即可构建。ACL、attr、libcap、liburing、oniguruma 等可选系统库可启用额外功能。
核心功能
- 01按广度优先列出文件,浅层匹配项先于深层子树出现。
- 02参数位置灵活,不像原版 find 那样对顺序严格要求。
- 03对拼写错误的参数给出修正建议。
- 04提示结果被忽略的表达式等潜在错误。
- 05提供 -exclude 跳过整棵子树,以及 -nohidden 跳过隐藏文件。
适用场景
- 在大型项目目录中查找文件,且不确定它位于多深的层级。
- 在脚本中替换 find,同时保留熟悉的谓词和选项。
- 用 -exclude 跳过 .git 等无关目录后再搜索。
快速上手
- 1
在 macOS 上通过 Homebrew 安装
brew install bfs - 2
或通过 Linux 发行版的包管理器安装(例如 Arch Linux)
pacman -S bfs - 3
或从源码构建:下载发行版或克隆仓库,然后运行 configure 和 make
./configure && make
使用前须知
- 从源码构建需要 C 编译器、GNU make 和 Bash,完整功能还需要可选的系统库。
收录于专题
标签
常见问题
- bfs 是什么?
- 一个广度优先的 UNIX find 命令替代品,先列出浅层文件,兼容 POSIX 与主流 find 用法。 bfs 是 UNIX find 命令的一个变体,它按广度优先而非深度优先遍历目录树。它从最浅层的文件开始逐层列出,因此不必等它把无关的深层子树全部遍历完,就能找到目标文件。
- bfs 可以免费使用吗?用的什么许可证?
- bfs 以 0BSD 许可证开源。用于商业产品前,请先确认许可证条款。
- bfs 还在维护吗?
- 活跃维护中。bfs 最近一次提交是在 2026年10月13日。
- bfs 适合用来做什么?
- 在大型项目目录中查找文件,且不确定它位于多深的层级。 在脚本中替换 find,同时保留熟悉的谓词和选项。 用 -exclude 跳过 .git 等无关目录后再搜索。
- bfs 怎么安装和运行?
- 在 macOS 上通过 Homebrew 安装: brew install bfs 或通过 Linux 发行版的包管理器安装(例如 Arch Linux): pacman -S bfs 或从源码构建:下载发行版或克隆仓库,然后运行 configure 和 make: ./configure && make
- 在哪里获取 bfs?
- 源代码和安装说明在 GitHub 上:https://github.com/tavianator/bfs
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
社区维护的命令行工具速查手册,用简明实例代替冗长的 man 手册。
Oils 是兼容 bash 的 OSH 解释器与面向 Python/JavaScript 用户的新 shell 语言 YSH。
跨平台的命令行 Shell、脚本语言与自动化框架,支持 Windows、Linux 和 macOS。
开源的跨平台终端,集成 AI 助手,支持 SSH 断线自动重连与远程文件编辑预览。
一个独立的命令行工具,监视文件变化并自动执行指定命令。