作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很好奇当您在类 UNIX 系统上 rm 文件时在更深层次上会发生什么,尤其是与如何恢复已删除的文件有关。
有人可以详细描述 rm 是如何工作的吗?
最佳答案
rm 调用 unlink 系统调用。 unlink() 删除目录条目,将文件的 inode 标记为空闲(可恢复),并且磁盘驱动程序删除磁盘上支持的文件系统数据(片刻之后)。
对于旧系统:磁盘扇区上的实际物理数据仍然存在,但您无法访问它。旧数据都不能保证持久存在。
我相信,Windows 开发人员提出了取消删除的想法。这需要对删除的文件进行特殊处理。大多数较旧的 UNIX/linux 文件系统和驱动程序不支持取消删除操作。 ext3 和 ext4 文件系统可以。现代 linux 支持 ext3 和 ext4 的 extundelete 命令。此命令重建文件的所有已发送到临时元数据存储的旧元数据。 extundelete 功能增加了旧的 UNIX 系统无法轻松支持的开销。还有额外的磁盘开销。
关于unix - 当你 rm 文件时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380830/
我创建了一个分支来开发新功能。由于这个新功能完全是作为一个新项目开发的,唯一可能的冲突来源是解决方案文件。 随着功能的开发,主分支更新了几次。当我完成开发和测试时,我做了: git checkout
我是一名优秀的程序员,十分优秀!