![列出按相似性排序的具有相似名称的文件](https://linux22.com/image/90806/%E5%88%97%E5%87%BA%E6%8C%89%E7%9B%B8%E4%BC%BC%E6%80%A7%E6%8E%92%E5%BA%8F%E7%9A%84%E5%85%B7%E6%9C%89%E7%9B%B8%E4%BC%BC%E5%90%8D%E7%A7%B0%E7%9A%84%E6%96%87%E4%BB%B6.png)
是否可以搜索文件并按相似度降序列出它们?
例如:
以下文件位于/:
- 嘿
- 你好
- 直升机
- 你好
当我搜索“你好”时,我想要一个如下列表:
- 你好
- 你好
- 直升机
- 嘿
当然,具有 100% 相似度的文件将是我获得的文件find / -name 'hello'
我想要这样的原因如下:我不想知道文件是如何准确写入的才能找到它。
答案1
和zsh
:
setopt extendedglob # best in ~/.zshrc
ls -ld -- (#ia1)hello # case-insensitive, allow one error
ls -ld -- (#ia2)hello # case-insensitive, allow up to two errors.
递归地搜索隐藏文件(以及隐藏目录)((D)
):
ls -ld -- /**/(#ia2)hello(D)
(请注意,它不执行任何操作按相似度排序,仅ls
按其参数名称排序)。
答案2
这当然是可能的,尽管不受欢迎。
我从未真正使用过该工具,但我知道要寻找什么;你可能想尝试fzf
。
一般来说,你想要的是所谓的“模糊搜索”,这个名字来源于模糊逻辑。你知道或多或少你想要什么。或多或少的部分使它变得模糊。
如果我是你,我会fzf
尝试一下,但请考虑其他选择:
- 如果您自己创建了该文件,并且知道它是如何开始的,则可以使用制表符完成来查找它(开始键入文件名,然后按制表符自动完成/查看可能的选项)。
- 如果您确实不知道文件的名称,但知道一些其他数据(大小、创建日期等),您可以通过这些量词进行搜索。