我正在尝试使用find
该regex
选项。但是我的正则表达式仅捕获文件的基本名称。是否有对“目录查找当前位于”的引用,我可以在正则表达式中使用,这样我就不必通过前导来解释它.*
?
(我正在寻找类似$File::Find::dir
inperl
模块的东西File::Find
。)
举个例子:假设我想找到baz\d
与下面任意位置的正则表达式匹配的所有文件/foo/bar/
。使用find /foo/bar -regex 'baz\d'
不会找到名为baz1
at 的文件,/foo/bar/
因为模式baz\d
与完整文件名不匹配/foo/bar/baz1
,所以我使用的是find /foo/bar -regex '.*baz\d'
有效的,但我想知道是否可以用.*
更强大的东西替换它?
答案1
您可以通过在正则表达式模式中包含斜杠来“锚定”文件名的开头:
find /foo/bar/ -regex '.*/baz\d'
这将确保您只获得 , 等文件baz1
,而不是bazbaz1
.