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. 重要数据先备份,再删除

相关推荐
zh路西法1 小时前
【SSH 免密登录全流程】Windows Linux 通用方案
linux·windows·ssh
ScilogyHunter2 小时前
GCC完全指南
linux·gcc
CodeStats2 小时前
从 CPU 指令到 JVM 进程:彻底讲透 Java 执行 main 方法时,类加载、主线程、栈帧入栈的完整底层逻辑
java·linux·开发语言
努力努力再努力wz4 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
Jurio.5 小时前
开源 Codex Sticky:在终端 Codex CLI 长对话中始终固定底部输入框
linux·rust·github·开源软件·codex·codex cli
无足鸟ICT5 小时前
【RHCA+】撤销和恢复撤销快捷键
linux
质造者5 小时前
LangChain + Ollama + Tavily 实现旅游问答系统
linux·人工智能·python·langchain·rag
starvapour5 小时前
Ubuntu部署gitlab频繁出现502的问题
linux·ubuntu·gitlab
zhangfeng11336 小时前
ps aux讲解,结合国家超算中心 hpc apptainer
linux·服务器·网络