是否有类似的 CLI 工具gnome-search-tool
?我正在使用locate
,但我更喜欢它对目录名称匹配的结果进行分组。我得到很多路径匹配的结果,这不是我想要的:
/tmp/dir_match/xyz
/tmp/dir_match/xyz2/xyz3
它需要快速,因此使用搜索索引。
是否有类似的 CLI 工具gnome-search-tool
?我正在使用locate
,但我更喜欢它对目录名称匹配的结果进行分组。我得到很多路径匹配的结果,这不是我想要的:
/tmp/dir_match/xyz
/tmp/dir_match/xyz2/xyz3
它需要快速,因此使用搜索索引。
fzf是一个通用的命令行模糊查找器。
他们的 github 页面是https://github.com/junegunn/fzf
标准的 Linux 命令是:
find
命令查找文件名,例如:在中查找名为 xyz 的文件
/tmp
在其中查找名称包含“xyz”的目录
/tmp
find 和 grep 命令在文件内容中搜索,例如:
查找
/tmp
包含 xyz的文件locate
非常通用,可以采用 -r 和正则表达式模式,因此您可以进行很多复杂的匹配。例如,要匹配目录a
a0
a1
等,请使用'/a[0-9]*/'
. 这将只显示其中包含文件的目录,因为您需要/
路径中的第二个。要单独匹配目录,请使用$
将模式锚定到路径的末尾,'/a[0-9]*$'
.locate
请注意,该命令至少有 2 个版本,一个来自GNU,另一个来自 Redhat(称为 mlocate)。用于--version
查找您拥有的。它们在正则表达式风格上略有不同。例如,如果我们将上面的模式更改'/a[0-9]*$'
为 use+
instead of*
to avoid matchinga
on its own,那么 mlocate 需要\+
而 gnu just+
。例如,要匹配一个目录
a
及其下的所有内容,您可以将其用于两个版本对于 mlocate,您可能会
--regex
使用扩展语法的 prefex例如,要对 gnu locate 执行相同操作,您需要添加 option
--regextype egrep
。