我想使用正则表达式查找目录下的所有 coredump 文件。文件名的模式是core.1234
find /public_html -type f -regextype sed -regex "core.{[0-9]+:[0-9]+}"
请指教。
答案1
您错过了一些有关 -regex 如何工作的信息
-regex pattern
文件名与正则表达式模式匹配。这是对整个路径的匹配,而不是搜索。例如,匹配名为./fubar3', you can use the regular expression
.*bar.' 或.*b.*3', but not
f.*r3' 的文件。默认情况下,find 理解的正则表达式是 Emacs 正则表达式,但可以使用 -regextype 选项进行更改
特别是正则表达式需要匹配整个路径。您不需要更改正则表达式类型,甚至不需要提供-regex
find /public_html -name "core.[0-9][0-9][0-9][0-9]"
可以达到这一目的,并会在 /public_html 以下的任何级别找到核心文件。
答案2
/public_html 是路径的一部分,因此尝试find /public_html -type f -regextype sed -regex ".*/core.{[0-9]+:[0-9]+}"
答案3
find /public_html -type f -regextype sed -regex "/public_html/core.[0-9]\+"
编辑:添加示例
$ ls public_html/
core.asdd core.1asd core.123 core.1234 core.12362 core.1456 core.8452
$ find /public_html -type f -regextype sed -regex "/public_html/core.[0-9]\+"
/public_html/core.123
/public_html/core.1234
/public_html/core.1456
/public_html/core.12362
/public_html/core.8452