1 个不稳定版本
0.1.0 | 2021 年 3 月 29 日 |
---|
#48 在 #fuzzy-search
160KB
74 行
ffind
ffind
是 Linux 的 find
命令的一个有限但性能更好的版本。除了查找给定文件名的路径外,ffind
还支持“模糊”搜索(因此有额外的 f
)。当尝试找到文件但不知道其确切名称时,这很有用。
ffind
的未来版本将尝试实现 Linux 内置 find
命令的许多有用功能。
用法
ffind [OPTIONS] <query> [starting-dir]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-f, --fuzzy <fuzzy>
ARGS:
<query>
<starting-dir>
您可以通过 ffind --help
生成用法。
示例
> ffind someFile.txt
/Users/path/to/file/temp/test2Dir/someFile.txt
/Users/path/to/file/temp/test1Dir/someFile.txt
Took 21 msecs.
此命令将在当前目录中搜索并打印任何名为 someFile.txt
的文件的路径。
> ffind someFile.txt test2Dir
test2Dir/someFile.txt
Took 3 msecs.
此命令将在 myDir
目录中搜索并打印任何名为 someFile.txt
的文件的绝对路径。
> ffind someFile.txt -f 80
/Users/path/to/file/temp/test2Dir/someFile.txt
/Users/path/to/file/temp/test1Dir/someFile.txt
/Users/path/to/file/temp/test1Dir/someFilee.txtt
Took 6 msecs.
此命令将在当前目录中搜索并打印任何名称接近 someFile.txt
的文件的绝对路径。-f
标志表示使用“模糊”搜索,后面的整数表示比较的“强度”。提供 0
的强度将匹配任何内容,而提供 100
的强度将检查严格的字符串相等。在幕后,ffind
使用由 strsim crate 实现的 标准化 Levenshtein 距离。
性能
如您所见,在我的机器上,从根目录开始搜索文件名大约比 Linux 的 find
命令快 10 倍。
依赖关系
~4–14MB
~130K SLoC