4 个版本
新 0.0.4 | 2024 年 8 月 27 日 |
---|---|
0.0.3 | 2024 年 8 月 26 日 |
0.0.2 | 2024 年 8 月 26 日 |
0.0.1 | 2024 年 8 月 26 日 |
#2 in #find-files
每月 98 次下载
29KB
690 代码行
bfind
一个类似于 GNU Find 的工具,但使用广度优先搜索而不是深度优先搜索,用 Rust 编写。
原因
- BFS 偏好较浅的文件,这意味着较浅目录中的文件更有可能在较短时间内找到。
- 在遇到具有许多非常深子目录的子目录时,BFS 在移动到下一个子目录之前不会卡在它上面。
- 我想通过制作这个工具来学习 Rust。
无任何保证:我主要制作这个工具供个人使用。我没有任何计划来提高其性能或功能,也不会保证修复问题。不过,欢迎提交 PR。
构建
$ cargo build
或者对于发布版本
$ cargo build --release
安装
$ cargo install --path .
用法
注意:目前,仅实现了基本的目录列出功能。
列出当前工作目录
$ bfind
列出特定目录
$ bfind /path/to/directory
使用正则表达式查找文件
$ bfind . -- name match 'foo.*'
使用 glob 查找文件
$ bfind . -- name glob 'foo*'
组合条件
$ bfind . -- name glob 'foo*' and type is dir
格式化输出
$ bfind . print 'file: {name:10}, {size:>10} bytes' -- name glob 'foo*' and size gt 1MiB
执行命令
$ bfind . exec cat '{fullpath}' -- name glob 'foo*.txt'
待办事项
- 设计简单而强大的命令行语法。
- 实现命令行界面。
依赖项
~2–11MB
~126K SLoC