当我运行时locate syn
,它将返回syn
文件名中出现的文件。
如何搜索带全名的文件syn
?是locate --regex syn$
正确的方法,但locate --regex ^syn$
不是吗?
答案1
该--regex
选项适用于整个路径,而不仅仅是文件名。因此,locate --regex syn$
将匹配其路径(包括其名称)以结尾的所有文件和目录,syn
而locate --regex syn$
仅匹配其整个路径syn
为且此类文件不存在的文件:
$ locate --regex ^etc$ ## returns nothing
$ locate --regex ^/etc$
/etc
您正在寻找的选项是-b
:
-b, --basename
Match only the base name against the specified patterns. This
is the opposite of --wholename.
因此,你可以这样做
locate -b --regex ^sys$
这将列出locatedb
名称恰好为 的所有文件和文件夹sys
。