为什么删除的文件实际上没有从硬盘驱动器删除?


8

一篇有关文件恢复的文章中,我读到,当您在计算机上删除文件时,只会删除指向该文件的指针,并将文件占用的空间标记为可使用。这是恢复“已删除”文件的唯一原因,还是有其他原因导致占用的空间没有真正删除(位设置为零)?


考虑删除慢速媒体上文件使用的块。FAT最初是为软盘设计的,随着技术的进步,甚至软盘也变得越来越快。恢复已删除文件的能力在很大程度上决定了不覆盖数据(而不是相反)的副作用。较新的文件系统(尤其是采用写时复制技术的文件系统:btrfs,zfs等)还有其他考虑事项(到删除文件时,您甚至可能没有历史记录每个副本的存储位置) ,而且您当然不必每次写入都加倍)。
CVn 2012年

Answers:


20

选择取消链接而不是将文件清零的原因是性能。简单地将文件系统数据结构中的变量清零而不是开始覆盖整个文件要容易得多。在现代文件系统中,不管文件大小如何,取消链接文件都会花费固定的时间,而覆盖文件所花费的时间与文件大小成正比。


“不管文件大小如何,取消链接文件都会花费固定的时间” –是否正确取决于用于管理可用空间的数据结构。许多较旧的文件系统使用块位图,其中释放空间所花费的时间与文件大小成正比。
Michael Borgwardt,2012年

@MichaelBorgwardt谢谢,为清楚起见修改了答案。

不能说得更好。
octopusgrabbus 2012年

8

因为这将花费更多时间,并且没有必要,除非您不想恢复已删除的文件,这种情况很少发生。


2
+1代表“更多时间”。文件系统的设计并不是将数据清零作为要求,但是它设计得尽可能快。
Scott Whitlock,2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.