当你使用rm命令删除一个文件时会发生什么?

3

我想了解在类UNIX系统上删除文件时,更深层次的情况是什么,特别是关于如何恢复已删除的文件。

有没有人能够描述rm命令的工作原理?

1个回答

4

rm命令调用unlink系统调用。unlink()会删除目录项,标记文件的inode为可重用,并且磁盘驱动器会在短时间内从磁盘中删除支持文件系统的数据。

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

我想Windows开发人员提出了“undelete”(恢复已删除文件)的想法。这需要针对已删除文件进行特殊处理。大多数旧的UNIX/linux文件系统和驱动程序不支持undelete操作。但ext3和ext4文件系统支持。现代linux支持用于ext3和ext4的extundelete命令。该命令将重建发送到临时元数据存储区的所有文件的旧元数据。extundelete功能添加了旧的UNIX系统无法轻松支持的开销。还有额外的磁盘开销。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接