Linux 【07-rm命令超详细教程】

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 移动到临时目录(模拟回收站),而非直接 rm

    bash 复制代码
    # 替代删除:移动到临时文件夹
    mv test.txt /tmp/recycle/

六、实用场景示例

  1. 清理日志(删除当前目录所有 .log)
bash 复制代码
rm -rf *.log
  1. 删除指定目录及内部所有内容
bash 复制代码
rm -rf /home/user/temp
  1. 删除隐藏文件(以 . 开头)
bash 复制代码
rm -rf .hidden_file
# 删除当前目录所有隐藏文件(谨慎)
rm -rf .*
  1. 脚本中静默清理(无输出、无报错)
bash 复制代码
rm -rf /opt/app/logs/*

七、安全小技巧(防止手滑误删)

  1. 临时开启询问

    rm 起别名,每次删除都询问:

    bash 复制代码
    alias rm='rm -i'

    写入 ~/.bashrc 永久生效。

  2. 大目录先预览再删除

    先查看目录内容,确认无误再删:

    bash 复制代码
    ls 目标目录
    rm -rf 目标目录
  3. 重要数据先备份,再删除

相关推荐
七歌杜金房4 小时前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia1 天前
linux curl命令详解_curl详解
linux
扛枪的书生1 天前
Linux 网络管理器用法速查
linux
顺风尿一寸1 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode2 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫2 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
AlfredZhao4 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐5 天前
Linux内存扩容指南
linux
zylyehuo5 天前
Linux 彻底且安全地删除文件
linux
用户805533698036 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式