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

境外国外服务器专题

如何使用通配符批量删除文件?

  • 来源:本站
  • 编辑: 超级管理员
  • 时间: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 或回收站机制降低风险。


通过合理组合通配符和安全参数,你可以高效且安全地批量删除文件,避免因误操作导致的严重后果。


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