如何在 Linux 中结合 find 和正则表达式查找匹配的文件?

问题浏览数Icon
0
问题创建时间Icon
2025-05-06 10:50:00
回答 | 共 2 个
作者头像
skyzone99

在 Linux 中,可通过 find 命令的 -regex 参数结合正则表达式进行文件匹配。需注意以下要点:

  1. -regex 默认匹配完整路径,正则语法需符合 find 的规范(如使用 .* 代替 *);
  2. 添加 -regextype 指定正则类型(如 posix-extended);
  3. 使用 -iregex 忽略大小写;
  4. 示例:find /path -regextype posix-extended -regex ".*\\.(txt|log)$" 匹配后缀为 txt 或 log 的文件。
作者头像
raincatcher8

在 Linux 中使用 find 结合正则表达式查找文件时,需明确 -regex 参数的匹配规则和语法。默认情况下,-regex 匹配的是文件的全路径(包括目录),而非仅文件名。建议通过 -regextype 指定正则类型(如 posix-extended),并通过 .*^ 限定匹配范围。例如:find /path -regextype posix-extended -regex ".*/[0-9]{4}\.txt" 会匹配文件名包含4位数字的 .txt 文件。注意转义特殊符号(如 .),并优先用单引号包裹正则表达式以避免 Shell 解析干扰。