
如何使用通配符批量删除文件?
- 来源:本站
- 编辑: 超级管理员
- 时间:2025-07-22 20:02:40
- 阅读0次
在 Linux 中,通配符是批量删除文件的强大工具,通过结合 rm 命令可高效清理符合条件的文件。以下是常用的通配符及实战示例,帮助你安全、精准地批量删除文件:
一、常用通配符及其作用
通配符 含义 示例
* 匹配任意数量(包括零个)的任意字符 rm *.log 删除所有 .log 文件
? 匹配单个任意字符 rm file?.txt 删除 file1.txt、fileA.txt 等
[ ] 匹配方括号内指定的任意单个字符 rm [abc]* 删除以 a、b 或 c 开头的文件
[! ] 或 [^ ] 匹配不在方括号内的任意单个字符 rm [!abc]* 删除不以 a、b、c 开头的文件
{ } 匹配花括号内的多个模式之一(需 Bash 支持) rm {*.jpg,*.png} 删除 .jpg 和 .png 文件
二、实战示例:按不同需求批量删除
1. 按文件后缀删除
bash
# 删除所有 .log 文件(当前目录)
rm *.log
# 删除所有 .tmp 和 .bak 文件
rm *.{tmp,bak} # 等价于 rm *.tmp *.bak
# 删除所有 .txt 和 .pdf 文件(递归子目录,需结合 find)
find . -type f \( -name "*.txt" -o -name "*.pdf" \) -exec rm -i {} \;
2. 按文件名前缀或部分内容删除
bash
# 删除以 "backup_" 开头的文件
rm backup_*
# 删除包含 "test" 的文件(如 test1.txt、data_test.log)
rm *test*
# 删除文件名中间是数字的文件(如 file1.txt、file2.txt)
rm file[0-9]*.txt
3. 按文件类型和位置删除
bash
# 删除当前目录下所有隐藏文件(以 . 开头)
rm .*
# 删除当前目录下所有空目录(需递归)
find . -type d -empty -exec rm -r {} \;
4. 按日期范围删除
bash
# 删除30天前的日志文件(结合 find)
find /var/log -type f -mtime +30 -exec rm -i {} \;
# 删除最近7天内修改的临时文件
find /tmp -type f -mtime -7 -exec rm -i {} \;
三、安全删除的关键技巧
1. 预览匹配结果,避免误删
在执行删除前,先用 ls 命令预览通配符匹配的文件:
bash
# 查看会被删除的文件
ls *.log
# 确认无误后再删除
rm *.log
2. 交互式确认删除(推荐)
添加 -i 参数让 rm 在删除每个文件前询问确认:
bash
# 逐个确认删除
rm -i *.log
3. 批量确认(更高效)
使用 -I 参数(大写 i),当删除超过 3 个文件时仅提示一次确认:
bash
# 删除超过3个文件时提示确认
rm -I *.log
4. 限定删除范围(避免递归误删)
使用 ./ 明确限定在当前目录,避免切换目录后误删其他路径:
bash
# 仅删除当前目录下的 .txt 文件
rm -i ./*.txt
四、危险操作与避坑指南
1. 绝对禁止的命令
bash
# 千万不要执行!会删除整个系统
rm -rf /*
# 可能误删根目录(若 $dir 为空)
rm -rf $dir
2. 小心隐藏文件和目录
通配符 * 默认不匹配隐藏文件(以 . 开头),但 ./* 会匹配:
bash
# 危险:可能删除 .ssh、.bashrc 等重要文件
rm -rf ./* # 谨慎使用!
3. 处理包含空格的文件名
若文件名包含空格,需用引号或转义符:
bash
# 删除包含空格的文件
rm "file with space.txt"
# 或
rm file\ with\ space.txt
五、进阶工具:更安全的批量删除
1. 使用 safe-rm 替代原生 rm
safe-rm 会阻止删除 /、/etc 等危险目录:
bash
# 安装(Ubuntu/Debian)
sudo apt install safe-rm
# 使用方式与 rm 相同,但更安全
safe-rm /etc/passwd # 会被阻止
2. 移至回收站而非直接删除
通过别名将 rm 改为移动到回收站:
bash
# 创建回收站目录
mkdir -p ~/.trash
# 添加别名到 ~/.bashrc
alias rm='mv -t ~/.trash/'
# 清理回收站(30天前的文件)
find ~/.trash -type f -mtime +30 -delete
六、总结:安全批量删除的最佳实践
精准匹配:用 *、?、[ ] 等通配符明确筛选范围。
预览先行:用 ls 命令查看匹配结果,确认无误后再删除。
确认机制:用 -i(逐个确认)或 -I(批量确认)避免误删。
路径限定:用 ./ 或绝对路径明确操作目录,避免跨目录误删。
替代方案:用 safe-rm 或回收站机制降低风险。
通过合理组合通配符和安全参数,你可以高效且安全地批量删除文件,避免因误操作导致的严重后果。
- 如何使用通配符批量删除文件?
2025-07-22
- 结合grep命令:按内容删除
2025-07-22
- 如何结合其他命令来增强rm命令的···
2025-07-22
- 在使用通配符和rm命令时,如何避···
2025-07-21
- 如何使用通配符在rm命令中删除多···
2025-07-21
- 如何使用通配符在rm命令中删除多···
2025-07-21
- 面向未来的高可用境外服务器架构···
2024-08-26
- 跨境电商成功案例之优秀外国服务···
2024-08-22
- 从成本效益角度分析境外服务器的···
2024-08-17
- 如何规避使用外国服务器的风险问···
2024-08-16
- 搭建安全稳定的境外网站:首选外···
2024-08-19
- 针对中小企业的境外服务器配置指···
2024-08-22