我很想知道在类UNIX系统上运行文件时更深层次会发生什么,特别是与恢复已删除文件的方式有关。
有人可以描述rm在相当精细的层面上的工作原理吗?
答案 0 :(得分:4)
rm调用unlink系统调用。 unlink()删除目录条目,将文件的inode标记为空闲(可恢复),磁盘驱动程序删除磁盘上的支持文件系统数据(一段时间后)。
对于旧系统: 磁盘扇区上的实际物理数据仍然可以存在,但您无法实现。没有任何旧数据可以保留。
我相信Windows开发人员提出了取消删除的想法。这需要对已删除文件进行特殊处理。大多数旧的UNIX / Linux文件系统和驱动程序不支持取消删除操作。 ext3和ext4文件系统可以。 Modern linux支持ext3和ext4的extundelete命令。此命令重建发送到临时元数据存储的所有文件的旧元数据。 extundelete功能增加了旧UNIX系统无法轻松支持的开销。还有额外的磁盘开销。