温馨提示×

Linux如何批量删文件

小樊
42
2026-07-01 13:34:55
栏目: 智能运维

在 Linux 下批量删除文件常见场景和命令如下,按你的需求选用即可(⚠️删除不可恢复,请先确认):


一、按文件名批量删除

1. 删除某一类文件(通配符)

rm *.log

删除当前目录下所有 .log 文件。

rm test*.txt

删除以 test 开头、.txt 结尾的文件。


二、按路径批量删除

2. 删除指定目录下的某类文件

rm /tmp/*.tmp

3. 递归删除某类文件(进入子目录)

find . -name "*.log" -delete

或更安全一点:

find . -name "*.log" -type f

确认无误后再加 -delete


三、按条件批量删除(推荐)

4. 按时间删除(如 7 天前的文件)

find /data -type f -mtime +7 -delete
  • +7:7 天以前
  • -7:7 天以内
  • -mmin:按分钟

示例(30 分钟前):

find . -type f -mmin +30 -delete

四、按文件大小删除

5. 删除大于 100MB 的文件

find . -type f -size +100M -delete

五、删除空目录

find . -type d -empty -delete

六、防止误删(强烈推荐)

6. 先预览再删除

find . -name "*.tmp" -type f -print

确认后:

find . -name "*.tmp" -type f -delete

7. 交互式删除(每个文件确认)

rm -i *.log

七、危险命令(慎用)

❌ 递归删除当前目录所有文件

rm -rf *

❌ 删除根目录下文件(灾难)

rm -rf /

⚠️ 生产服务器禁止使用 -rf 前不加确认


八、常见组合示例

需求 命令
删除所有 .bak 文件 find . -name "*.bak" -delete
删除 30 天前的日志 find /var/log -name "*.log" -mtime +30 -delete
删除空文件 find . -type f -size 0 -delete
只删文件不删目录 find . -type f -name "*.tmp" -delete

如果你能说明:

  • ✅ 文件名规则
  • ✅ 是否递归子目录
  • ✅ 是否按时间 / 大小

我可以帮你写一条最安全、最合适的命令

0