
如何使用通配符在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 预览,确认匹配结果符合预期,避免误删。
- 在使用通配符和rm命令时,如何避···
2025-07-21
- 如何使用通配符在rm命令中删除多···
2025-07-21
- 如何使用通配符在rm命令中删除多···
2025-07-21
- 服务器无法安装宝塔应该如何处理···
2025-07-18
- 服务器打不开网页的处理办法?
2025-07-18
- MX记录是如何工作的?
2025-07-18
- 面向未来的高可用境外服务器架构···
2024-08-26
- 跨境电商成功案例之优秀外国服务···
2024-08-22
- 从成本效益角度分析境外服务器的···
2024-08-17
- 如何规避使用外国服务器的风险问···
2024-08-16
- 搭建安全稳定的境外网站:首选外···
2024-08-19
- 针对中小企业的境外服务器配置指···
2024-08-22