欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 macOS 的 find
命令中,-E
选项用于启用 扩展正则表达式(Extended Regular Expressions) 进行模式匹配(例如与 -regex
或 -iregex
一起使用时)。它与 GNU 版本的 find
中的 -regextype posix-extended
类似。
作用:指定后续的 -regex
或 -iregex
使用扩展正则语法(支持更灵活的元字符,如 +
, ?
, |
, 分组 ()
等)。
对比:
默认情况下,find
使用基础正则表达式(Basic Regular Expressions, BRE),需对某些符号转义(如 \+
, $)
)。
使用 -E
后,可直接使用扩展正则表达式(ERE),例如 a+|b
无需转义。
bash# 使用 -E 匹配多个扩展名(.txt 或 .md) find -E . -regex ".*\.(txt|md)" # 对比:若不用 -E,需对 | 和 () 转义 find . -regex ".*\.$txt\|md$"
-E
是 macOS(BSD)find
的独有选项,Linux(GNU find)通常用 -regextype posix-extended
。
某些 macOS 版本可能需要组合使用 -E
和 -P
(禁用路径别名解析)以避免警告。
建议通过 man find
查看本地手册确认具体行为。