当前位置: 首页 > news >正文

linux中为什么 rm 命令能删除自己 | linux使用rm命令删自己会怎样?

        rm 是我们日常用来删除文件和目录的命令。但你有没有想过,如果你用 rm 删除系统中的 rm 命令本身会发生什么?它会报错吗?还是无法执行?

1. rm 本质上是一个程序

        在 Linux 系统里,rm 并不是一个神奇的命令,而是一个可执行文件,通常位于:

/bin/rm

当你在终端输入:

rm file.txt

实际上,shell 会去 /bin 目录下找到 rm 可执行文件,并在内存中加载它来执行删除操作。

2. 程序在内存中运行,与磁盘文件分离

        Linux 的操作系统会把可执行文件加载到内存中形成一个进程。此时,程序在内存里已经有了自己的副本,运行不再依赖磁盘上的文件

        所以,当你执行:

rm -r /bin/rm

        系统会删除 /bin/rm 这个磁盘文件,但 rm 进程仍然在内存中运行,可以继续执行删除任务。

可以类比为:你手里拿着一本操作说明书(内存中的程序副本),即使桌子上的原书(磁盘文件)被撕掉,你依然可以按说明操作。

3. 删除自己后会发生什么

  • 当前执行的 rm 进程依然可以完成任务

  • 磁盘上的 /bin/rm 文件被删除

  • 之后尝试再打开一个终端使用 rm,系统就会报错:

bash: rm: command not found

        因为新的进程无法找到已经被删除的 /bin/rm 文件。

        通过这个原理,可以理解 Linux 中 程序执行与磁盘文件的分离:程序一旦加载到内存,就像拿到了一份拷贝,磁盘上的原文件删除不影响已运行的进程

http://www.dtcms.com/a/390987.html

相关文章:

  • django登录注册案例(下)
  • 【TES600G】基于JFM7K325T FPGA+FT-M6678 DSP的全国产化信号处理平台
  • 卷积神经网络深度解析:从基础原理到实战应用的完整指南
  • 企业档案管理系统:精准破局制造行业档案管理困境
  • 【完整源码+数据集+部署教程】考古坑洞私挖盗洞图像分割系统: yolov8-seg-act
  • MMDB详解
  • TC8:SOMEIP_ETS_130测试用例解析
  • 等效学习率翻倍?梯度累积三连坑:未除以 accum_steps、调度器步进错位、梯度裁剪/正则标度错误(含可复现实验与修复模板)
  • 嵌入式学习笔记(44)IMX6ULL
  • OpenStack 学习笔记(五):网络管理和虚拟网络实践与存储管理实验(下)
  • 博睿数据携手华为共筑智能未来,深度参与HUAWEI CONNECT 2025并发表主题演讲
  • 陈童理论物理新讲1 哈密顿力学初步
  • 9.19 Sass
  • 设计模式详解:单例模式、工厂方法模式、抽象工厂模式
  • 终端同居物语:Shell咏唱术式与权限结界の完全解析书
  • XeLaTeX 中文删除线自动换行问题的解决方案
  • R语言中的因子(Factor)详解 factor_path <- as.factor(char_path)
  • 软件测试之⾃动化测试常⽤函数(沉淀中)
  • 火山引擎多模态数据湖:基于 Daft 与 Lance,构筑 AI 时代数据湖新范式
  • 关于强化学习的一篇经典学习文章
  • 【JavaScript 性能优化实战】第四篇:webpack 与 vite 打包优化实战
  • maven-profile实现springboot多版本配置打包
  • OpenLayers地图交互 -- 章节二:绘制交互详解:从基础几何到复杂图形的完整绘制方案
  • Java 工厂模式 + 策略模式实战:工具管理器的设计与实现
  • 污水处理厂远程调试与智能化运维解决方案
  • 【提示工程】Ch2-提示技术(Prompt Technique)
  • vLLM - Worker
  • GitHub上面仓库名写错了,怎么改
  • 项目中的图形验证码是前端还是后端实现?
  • ✅ 基于Scrapy与朴素贝叶斯的校园舆情监测与预警系统 Django+B/S架构 可视化大屏 机器学习