昨天的这个时候我还在为获得了50赞而高兴,结果今天就450赞了^_^
对答案做了一些修正,以答谢大家的支持。
创建文件:盖大楼(文件本体),同时制作一个指向楼的路标(指针)。用户通过路标就能找到楼。
“删除”文件(移动至回收站):
在路标上写一个“拆”字。
恢复文件(从回收站恢复):
将路标上的“拆”字抹掉。
“完全”删除文件(这里的“完全”删除指的是Shift+Delete直接删除,或从回收站删除):
把路标拆了,楼先留着。这样,只记路标位置的用户就无法找到这个楼的具体位置了,而且也不会消耗太多的时间(毕竟拆路标比拆楼容易多了)。
此时,虽然楼还在原地,但是这块地已经被系统认定为“空地”了——文件本体占据的空间被加入到硬盘可用空间中。
恢复文件(恢复“完全”删除的文件):
因为废弃的大楼还在原地,专业的搜救队(数据恢复工具)还是有可能找到它的。然而楼附近很可能都是废墟(被删除数据),它们可能会干扰搜救队的判断,造成抢救失败。一般来说,搜救队会尝试将楼1:1整体复制到其他场所,这样如果抢救失败了,用户还有机会请求其他搜救队的帮助;而如果原地抢救,万一失败,可能会对楼造成无法逆转的破坏。
在英文维基百科上有一些搜救队的联系方式,如有需要可以参考:
List of data recovery software恢复文件的原理:(评论区 陆涛 问起这个问题,于是补充一下)
从一片废墟中找到目标大楼的“招牌”。找到之后,以找到的楼为原型,在其他地方建造一模一样的新楼。
(招牌:绝大多数的文件都以特定内容开头和结尾,比如GIF格式图片一定是以GIF87a或者GIF89a开头、十六进制数字“3B”结尾。只要定位到特定文件头、文件尾,基本就能确定这部分数据属于同一个文件,以及判断出该文件的格式)
再创建文件:
施工队到达施工现场后,发现这里已经有大楼存在,但是这个大楼已经废弃,于是把它炸了,盖新的楼。这时候原来的楼就彻底找不到了,最多只能抢救出一部分残骸。
(注:以上信息仅对普通硬盘有效;如果使用的是SSD固态硬盘,且SSD硬盘本身和操作系统都支持 Trim 指令 ,则在执行“完全”删除操作的同时,会立刻开始拆楼,因此删除的数据无法找回。感谢评论区
老赵和
superheasy补充)
-------------------
2015.9.17由于评论区有两位朋友问到如何彻底删除文件,补充一段。
“粉碎”文件(使用第三方工具,在普通硬盘上彻底删除文件):
将原来的楼炸掉,然后在废墟上搭建违章建筑(全零、全一,或者随机无用数据)。搭建完成后,将违章建筑炸掉,再搭建新的违章建筑。如此反复一定次数后,原来的楼就连渣都找不到了。
该操作需要在炸楼后盖新楼(且可能会盖好几次),因此速度非常慢。
能够完成此工作的工程队(文件粉碎工具)有很多,请自行查找。
请不要在SSD固态硬盘上使用文件粉碎工具,因为:
1.SSD硬盘的寿命与写入数据的次数有关。文件粉碎工具会多次写入数据,严重影响硬盘寿命。
2.由于耗损平均技术(
Wear leveling),在SSD硬盘上无法强行指定写入数据的位置,这一点与普通硬盘不同。也就是说,SSD硬盘上搭建的违章建筑很可能和原来的楼位置完全不同,无法达到破坏楼的效果。
3.由于上文中提到的
Trim指令,一般并不需要刻意执行“粉碎文件”操作。
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:704559159@qq.com