基本查找-regex无法在CentOS下工作



我的理解是find遍历整个文件路径来定位字符串。因此,我无法理解为什么下面的正则表达式不起作用。

 find / -regex '^sysconfig$'

应返回/etc/sysconfig。即使是像find / -regex 'bin'这样的简单正则表达式也不会返回任何内容。

我是不是错过了一些很简单的东西?

只需将正则表达式更改为,

find / -regex '.*sysconfig$'

find / -regex '.*/sysconfig$'

因为-regex查找表达式匹配整个名称,包括当前目录的相对路径。因此.*首先将匹配前面的字符。

据我所知,在no正则表达式实现中,正则表达式^sysconfig$会匹配以下内容吗:

blah blah sysconfig

^$是起始字符串和结束字符串锚,意味着只有当测试字符串恰好sysconfig,并且两侧都没有其他文本时,测试字符串才会匹配。事实上,它们甚至不需要,因为-regex匹配整个字符串而不是子字符串。

如果您希望所有文件都以sysconfig结尾,只需使用:

find / - regex '.*sysconfig'

如果希望任何目录中的所有名为sysconfig的文件,请使用'.*/sysconfig'

最新更新