3

我很好奇当您在类 UNIX 系统上 rm 文件时在更深层次上会发生什么,尤其是与如何恢复已删除文件有关的问题。

有人可以描述 rm 如何在相当精细的级别上工作吗?

4

1 回答 1

4

rm 调用 unlink 系统调用。unlink() 删除目录条目,将文件的 inode 标记为空闲(可恢复),磁盘驱动程序删除磁盘上支持的文件系统数据(片刻之后)。

对于旧系统:磁盘扇区上的实际物理数据仍然存在,但您无法访问它。没有任何旧数据可以保证持续存在。

我相信 Windows 开发人员想出了取消删除的想法。这需要对已删除的文件进行特殊处理。大多数较旧的 UNIX/linux 文件系统和驱动程序不支持取消删除操作。ext3 和 ext4 文件系统可以。现代 linux 支持 ext3 和 ext4 的 extundelete 命令。此命令重建文件的所有旧元数据,这些元数据已发送到临时元数据存储。extundelete 功能增加了旧 UNIX 系统无法轻松支持的开销。还有额外的磁盘开销。

于 2013-05-05T02:43:35.000 回答