RELATEED CONSULTING
相关咨询
欢迎选择下列在线客服咨询
微信客服
微信客服二维码
热线电话:13863516421
7x24小时,全年无休
我们服务器的承诺:
关闭右侧工具栏

境外国外服务器专题

如何使用通配符在rm命令中删除多个不同后缀的文件?

  • 来源:本站
  • 编辑: 超级管理员
  • 时间:2025-07-21 17:37:37
  • 阅读0次

在 rm 命令中使用通配符删除多个不同后缀的文件时,可通过 逻辑或(-o) 结合括号 () 来组合多个条件。以下是具体方法、示例及注意事项:

一、核心语法:结合括号和 -o(逻辑或)

bash

rm -i \(\ -name "*.后缀1" -o -name "*.后缀2" \)


关键点:

括号需转义:使用 \(` 和 `\) 确保被正确解析。

-o 表示或:连接多个 -name 条件。

添加 -i 安全确认:避免误删。

二、示例:删除多种后缀的文件

1. 删除 .log、.tmp、.bak 文件

bash

rm -i \(\ -name "*.log" -o -name "*.tmp" -o -name "*.bak" \)

2. 删除图片文件(.jpg、.png、.gif)

bash

rm -i \(\ -name "*.jpg" -o -name "*.png" -o -name "*.gif" \)

3. 删除特定目录下的多种配置文件

bash

rm -i /etc/app/conf/\(\ -name "*.conf" -o -name "*.cfg" -o -name "*.ini" \)

三、安全检查:先预览再删除

执行删除前,建议先用 ls 预览匹配的文件:


bash

# 预览要删除的文件

ls -l \(\ -name "*.log" -o -name "*.tmp" \)

四、注意事项

括号必须转义:

若不使用 \(` 和 `\),会导致语法错误。例如:

❌ 错误:rm -i ( -name "*.log" -o -name "*.tmp" )

✅ 正确:rm -i \(\ -name "*.log" -o -name "*.tmp" \)

使用 -I 批量确认:

若需删除大量文件,可将 -i 改为 -I,仅在删除超过 3 个文件时提示一次确认:

bash

rm -I \(\ -name "*.log" -o -name "*.tmp" \)


结合其他筛选条件:

可添加 -type f(限定为文件)、-mtime +30(30 天前的文件)等条件:

bash

rm -i \(\ -type f -name "*.log" -o -name "*.tmp" \) -mtime +30


五、替代方案:使用 find 命令

若需递归删除子目录中的文件,或条件更复杂,推荐使用 find:


bash

# 递归删除所有子目录中的.log和.tmp文件(确认后删除)

find . -type f \( -name "*.log" -o -name "*.tmp" \) -exec rm -i {} \;


总结

通过 rm -i \(\ -name "*.后缀1" -o -name "*.后缀2" \) 可安全高效地删除多种后缀的文件。操作前务必用 ls 预览,确认匹配结果符合预期,避免误删。


我们提供7X24小时售后服务,了解更多机房产品和服务,敬请联系
购买咨询 售后服务