You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux find命令-regex参数用法及默认正则类型查询

关于find命令正则相关问题的解答

1. find命令的默认regextype类型

GNU版本find的默认正则类型是emacs,该语法和常用的POSIX扩展正则规则不同:分组符号()、多分支匹配符号|都需要加反斜杠转义才会被识别为正则特殊字符,未转义的情况下只会被当做普通字符匹配,这也是你最开始写的正则无法生效的核心原因。

2. 不指定regextype的缩短命令写法

直接适配默认的emacs正则语法,对特殊符号做转义即可,不需要额外加regextype参数,可行写法如下:

find -regex './\(\.git\|node_modules\|another-unwanted-dir\)' -prune -or -ls

补充说明:上面的写法里还对.git的点号做了转义,避免.作为正则通配符匹配到其他非预期的目录名,匹配精准度更高。

额外补充:find参数顺序的原理

find的参数是按从左到右的顺序逐个解析执行的,-regextype属于全局生效的正则类型设置参数,必须放在-regex参数之前才能作用于后续的正则匹配逻辑,放在-regex之后时,正则匹配已经执行完成,修改类型自然不会生效。

内容的提问来源于stack exchange,提问作者TomasJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:39:02