Linux rm 命令 超详细教程
rm(remove)用于删除文件/目录 ,是 Linux 高频命令,删除后默认无法恢复,务必谨慎使用。
一、基本语法
bash
rm [选项] 文件名/目录名
二、常用参数(核心)
| 参数 | 作用 |
|---|---|
-f |
强制删除,不提示、忽略不存在文件 |
-i |
删除前交互式询问(默认部分系统自带) |
-I |
批量删除多个文件时,仅询问一次(比 -i 简洁) |
-r / -R |
递归删除目录+目录内所有文件/子目录(删文件夹必备) |
-v |
可视化,显示删除过程 |
补充:
-r和-R大部分场景等效;-R会保留符号链接属性,日常用-r即可。
三、基础用法(文件删除)
1. 删除单个文件
bash
rm test.txt
部分系统会提示 rm: 是否删除普通文件 'test.txt'?,输入 y 确认、n 取消。
2. 强制删除文件(不弹窗)
最常用组合:rm -f
bash
rm -f test.txt
- 即使文件不存在,也不会报错
- 脚本/批量操作首选
3. 批量删除多个文件
bash
# 逐个指定文件
rm -f 1.txt 2.log 3.jpg
# 通配符 * 匹配(删除所有 .txt 文件)
rm -f *.txt
# 删除当前目录所有文件(慎用)
rm -f *
4. 带过程提示删除
bash
rm -fv *.log
四、目录删除(重点:必须加 -r)
普通 rm 无法直接删空/非空目录,必须搭配 -r
1. 删除空目录
bash
rm -r 文件夹名
2. 强制删除非空目录(最常用)
生产/日常首选:rm -rf
bash
rm -rf mydir
- 递归删除目录内所有文件、子目录
- 全程无任何询问,速度快
3. 批量删除多个目录
bash
rm -rf dir1 dir2 dir3
4. 交互式删除目录(防止误删)
bash
rm -ri mydir
进入目录内部时,逐个文件询问是否删除。
五、高危操作 & 避坑(必看)
1. 绝对禁止:rm -rf /
bash
# 毁灭性命令,**绝对不要执行**
rm -rf /
会递归删除系统根目录所有数据,系统直接崩溃、数据全部丢失。
2. 慎用:rm -rf /*
删除当前根目录下所有内容,同样高危。
3. 带空格/特殊字符的文件删除
文件名含空格、-、# 等,常规命令会报错:
bash
# 文件名:my file.txt(含空格)
rm -f "my file.txt"
# 文件名以 - 开头(如 -test.txt)
rm -f -- -test.txt
4. 误删恢复说明
-
Linux 默认无回收站 ,
rm删除后常规手段无法恢复 -
重要文件建议先
mv移动到临时目录(模拟回收站),而非直接rmbash# 替代删除:移动到临时文件夹 mv test.txt /tmp/recycle/
六、实用场景示例
- 清理日志(删除当前目录所有 .log)
bash
rm -rf *.log
- 删除指定目录及内部所有内容
bash
rm -rf /home/user/temp
- 删除隐藏文件(以 . 开头)
bash
rm -rf .hidden_file
# 删除当前目录所有隐藏文件(谨慎)
rm -rf .*
- 脚本中静默清理(无输出、无报错)
bash
rm -rf /opt/app/logs/*
七、安全小技巧(防止手滑误删)
-
临时开启询问
给
rm起别名,每次删除都询问:bashalias rm='rm -i'写入
~/.bashrc永久生效。 -
大目录先预览再删除
先查看目录内容,确认无误再删:
bashls 目标目录 rm -rf 目标目录 -
重要数据先备份,再删除。