#search #find #tool #file #find-files #filesystem

app bfind

类似于 GNU Find 的工具,但使用广度优先搜索而不是深度优先搜索

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

Download history · Rust 包仓库

每月 98 次下载

Apache-2.0

29KB
690 代码行

bfind

build

一个类似于 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