rm · 删除文件

上游:ls(删之前先 ls 确认文件名)· pwd(确认在对的目录里再删) 下游:find(批量删除时用 find 精准定位文件)


一句话是什么

rm 删除文件或目录—— Linux 里没有回收站,删了就是删了。


为什么需要它

备份积累太多,磁盘快满了,要清理旧备份:

rm ~/mc-backups/mc-worlds-20260101.tar.gz
# 删了,磁盘腾出来了

核心用法

公式

rm [选项] 文件名

常用命令

命令说明风险等级
rm 文件名删除一个文件
rm a.txt b.txt同时删多个文件
rm *.tar.gz删除所有 .tar.gz 文件中(注意范围)
rm -r 目录名递归删除目录和里面所有内容
rm -rf 目录名强制递归删除,不提示确认极高
rm -i 文件名删之前逐个确认最安全

⚠️ 删除前必做两步

# 第一步:pwd 确认自己在哪
pwd
# /home/aaron/mc-backups  ← 确认是备份目录,不是其他地方
 
# 第二步:ls 确认要删的文件
ls mc-worlds-20260101.tar.gz
# mc-worlds-20260101.tar.gz  ← 确认文件存在
 
# 第三步:再删
rm mc-worlds-20260101.tar.gz

Linux 笑话

互联网上最著名的 Linux 事故之一:

# 本来想删当前目录下的某个目录
rm -rf ./temp/
 
# 但 temp 变量没设置或设成了空
rm -rf /$temp/
# 等价于
rm -rf /
# 删光了整个系统!

真实事故,真的发生过。

规律:rm -rf 是最危险的命令之一, 加 / 或者空变量就可能删掉整个系统。 用之前三次确认目标路径。


例题精讲

📗 初探 Starter — 删除一个旧备份

# 确认位置
pwd
# /home/aaron/mc-backups
 
# 看有哪些备份
ls
# mc-worlds-20260101.tar.gz  mc-worlds-20260102.tar.gz
 
# 删掉最旧的那个
rm mc-worlds-20260101.tar.gz
 
# 确认删了
ls
# mc-worlds-20260102.tar.gz  ← 只剩一个

📘 应用 User — 批量清理旧备份

# 查看所有备份(按时间排序)
ls -lt ~/mc-backups/
 
# 删除超过 30 天的备份
# (实际生产用 find,这里用通配符演示)
rm ~/mc-backups/mc-worlds-202601*.tar.gz
 
# 确认删除结果
ls ~/mc-backups/

📙 管理 Admin — 安全删除目录

# 要删一个废弃的测试目录
ls -la ~/test-server/       # 先看里面有什么
 
# 确认没有要保留的东西,再删
rm -r ~/test-server/
 
# 如果目录里有只读文件(没有写权限),加 -f 强制
rm -rf ~/test-server/
 
# 更安全的做法:-i 逐个确认
rm -ri ~/test-server/
# rm: remove regular file 'test-server/config.json'? y

官方文档参考

man rm      # 完整手册

rm 删除无法撤销;-r 删目录;-f 强制;-i 逐个确认;删前 pwd + ls 确认两步不能省。


节点链接

上游(rm 之前要用这些确认)

  • ls ← 确认文件存在、看清楚文件名
  • pwd ← 确认自己在对的目录

下游

  • find ← 批量精准删除用 find -name … -delete

实战

  • shell-script ← backup.sh 里用 xargs rm -f 清理旧备份
  • cron ← 定时清理旧文件

节点版本:v1.0 · 2026-04-20 Tier 1 基础节点——Linux 里没有回收站