尝试使用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
如果您查看locate --help
,可能会发现:
-r, --regexp REGEXP search for basic regexp REGEXP instead of patterns
--regex patterns are extended regexps
您可以-r
用来提供regexp模式locate
:
locate -r /node$
该/
保证node
是在文件名的开头。该$
保证node
是在文件名末尾。这会给你只匹配确切的文件名的文件。
如果你想要做一个区分大小写的搜索(火柴Node
,NODE
,nOdE
,等),添加-i
:
locate -i -r /node$
如果locate不支持regexp,则可以使用grep(如Iracicot所述):
locate node | grep /node$
locate -i node | grep -i /node$
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句