Ale*_*x G 10 unix freebsd locate
尝试使用locate
命令来查找给定模式的完全匹配项。但是结果显示所有匹配的文件..
例如:我想找到一个名为:node的二进制文件
但它给了我包含这个词的所有匹配项:
server2# locate node
/usr/share/man/man9/getnewvnode.9.gz
/usr/share/man/man9/ieee80211_amrr_node_init.9.gz
/usr/share/man/man9/ieee80211_dump_node.9.gz
/usr/share/man/man9/ieee80211_dump_nodes.9.gz
/usr/share/man/man9/ieee80211_find_rxnode.9.gz
/usr/share/man/man9/ieee80211_find_rxnode_withkey.9.gz
/usr/share/man/man9/ieee80211_free_node.9.gz
Run Code Online (Sandbox Code Playgroud)
ADT*_*DTC 10
如果您查看locate --help
,您可能会发现:
-r, --regexp REGEXP search for basic regexp REGEXP instead of patterns
--regex patterns are extended regexps
Run Code Online (Sandbox Code Playgroud)
您可以使用-r
regexp 模式提供给locate
:
locate -r /node$
Run Code Online (Sandbox Code Playgroud)
该/
保证node
是在文件名的开头。该$
保证node
是在文件名末尾。这将只为您提供与确切文件名匹配的文件。
如果你想要做一个区分大小写的搜索(火柴Node
,NODE
,nOdE
,等),添加-i
:
locate -i -r /node$
Run Code Online (Sandbox Code Playgroud)
如果 locate 不支持正则表达式,您可以使用 grep(如 Iracicot 所述):
locate node | grep /node$
locate -i node | grep -i /node$
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以将 grep 与 locate 一起使用
server2# locate node | grep node$
Run Code Online (Sandbox Code Playgroud)
$ 符号将告诉 grep 查看字符串的末尾。