我想了解在类UNIX系统上删除文件时,更深层次的情况是什么,特别是关于如何恢复已删除的文件。
有没有人能够描述rm命令的工作原理?
我想了解在类UNIX系统上删除文件时,更深层次的情况是什么,特别是关于如何恢复已删除的文件。
有没有人能够描述rm命令的工作原理?
rm命令调用unlink系统调用。unlink()会删除目录项,标记文件的inode为可重用,并且磁盘驱动器会在短时间内从磁盘中删除支持文件系统的数据。
对于旧系统: 实际的物理数据可能仍然存在于磁盘扇区中,但是您无法访问它。旧数据没有保持的保证。
我想Windows开发人员提出了“undelete”(恢复已删除文件)的想法。这需要针对已删除文件进行特殊处理。大多数旧的UNIX/linux文件系统和驱动程序不支持undelete操作。但ext3和ext4文件系统支持。现代linux支持用于ext3和ext4的extundelete命令。该命令将重建发送到临时元数据存储区的所有文件的旧元数据。extundelete功能添加了旧的UNIX系统无法轻松支持的开销。还有额外的磁盘开销。