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

如何在Linux中使用正则表达式查找并过滤特定命名的多个文件?

精准匹配并删除指定格式文件

你的问题出在正则只匹配了./root开头的部分,没有限定后续的文件名格式,所以会匹配所有包含./root的路径(比如root目录、root.abc这类不符合要求的文件)。要精准匹配root.file后接一串数字的文件,调整正则即可:

1. 先查看匹配结果(避免误删)

执行以下命令确认匹配的文件是否正确:

find ./ -regex '\./root\.file[0-9]+' -print

正则说明:

  • \./root\.file:匹配路径开头的./root.file,其中.用\.转义(因为正则里.代表任意字符)
  • [0-9]+:匹配一个或多个数字,对应文件名末尾的数字部分

2. 直接删除匹配文件

确认匹配正确后,添加-delete选项执行删除(注意-delete必须放在命令最后):

find ./ -regex '\./root\.file[0-9]+' -delete

补充:简化写法(如果不需要严格正则匹配)

如果只是匹配以root.file开头的文件,也可以不用正则,用-name选项更简单:

find ./ -name 'root.file*' -print
# 删除的话
find ./ -name 'root.file*' -delete

这种写法更直观,适合不需要精确限定数字后缀的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:40:40