我在当前目录中有一个文件foo
。然后我运行以下命令:
find . -regex 'foo'
找不到任何内容find . -regex 'foo.*'
找不到任何内容find . -regex '.*foo'
找到文件我希望这些命令中的任何一个都能产生积极的结果。
find
命令版本为4.4.2
答案 0 :(得分:4)
来自手册:
-regex pattern
File name matches regular expression pattern. This is a match
on the whole path, not a search. For example, to match a file
named `./fubar3', you can use the regular expression `.*bar.' or
`.*b.*3', but not `f.*r3'. The regular expressions understood
by find are by default Emacs Regular Expressions, but this can
be changed with the -regextype option.
重要的部分是:这是整条路径的匹配,而不是搜索。
所以只有第三个正则表达式产生结果:
./foo
答案 1 :(得分:0)
find
实际上会尝试匹配字符串./foo
(与-name
开关不同),因此如果文件-regex '.*foo'
,第三种模式foo
必须有效没有延期。
尝试使用:
``find . -regex '.*foo.*'``
报告输出。