Regex 基本查找-正则表达式在CentOS下不起作用

Regex 基本查找-正则表达式在CentOS下不起作用,regex,find,Regex,Find,我的理解是find遍历整个文件路径来定位字符串。因此,我无法理解为什么下面的正则表达式不起作用 find / -regex '^sysconfig$' 应该返回/etc/sysconfig。 即使是像find/-regex'bin'这样的简单正则表达式也不会返回任何结果 我遗漏了一些非常简单的东西吗?只要将正则表达式更改为 find / -regex '.*sysconfig$' 或 find / -regex '.*/sysconfig$' 因为-regexfind expressio

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

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


我遗漏了一些非常简单的东西吗?

只要将正则表达式更改为

find / -regex '.*sysconfig$'

find / -regex '.*/sysconfig$'
因为
-regex
find expression匹配整个名称,包括来自当前目录的相对路径。因此,
*
首先将匹配前面的字符。

在任何正则表达式实现中,我都不知道正则表达式
^sysconfig$
是否匹配如下内容:

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

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

find / - regex '.*sysconfig'

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

我的错误,谢谢。一个快速的问题-
find-regex'^[/A-z\u]*/$”
这如何给出/?如果需要的话,我可以提出一个新的问题。更具体地说,使用这个正则表达式比使用
find/-regex'^/$'
有什么好处吗?我也不确定/inside[]的用途,它是指匹配/或[a-z]字符集还是??如果是这样的话,我想我理解了-在/之前没有任何东西。您使用
-regex
而不是
-name
?不,没有理由。为什么?如果您只想处理文件名,即
-name'sysconfig'
,可以使用
-name
(如果需要,还可以使用globs)。不会使用
-regex
,除非您也想检查路径中的某些内容(
-name
-path
可能更简单),或者需要globs以外的内容。请记住@BroSlow。