2012-01-31 73 views
0

我最近在目录上意外地调用了“rm -rf *”,删除了我需要的一些文件。但是,我能够使用photorec恢复其中大部分。显然,“删除”文件只是删除对所述文件的引用,并且在被其他东西覆盖之前并不真正删除。如果你想删除它的所有痕迹,移动文件比删除它更安全吗?

所以,如果我想彻底删除文件,不能我只是执行

mv myfile.txt /temp/myfile.txt 

(或移动到外部存储)

回答

2

号码也没有帮助。

在文件系统之间移动的过程实际上仍然只是内部的“副本+ rm”。 “源”媒体上文件的原始存储位置仍然存在,只是标记为可用。在文件系统内移动根本不接触文件字节,它只是更新簿记以表示“文件X现在位于位置Y”。

要真正擦除文件,必须覆盖所有的字节。再一次,技术阻碍了这一点 - 如果您使用的是固态存储介质,那么写入文件'垃圾'的机会将不会触及文件存储的实际晶体管,但是,实际上写在完全不同的地方。

对于磁性媒体,重复覆盖交替0x00,0xFF和随机字节将最终完全烧毁文件。对于SSD /闪存系统,它必须提供“安全擦除”选项,否则必须将芯片粉碎成灰尘。对于光学媒体来说,它更加复杂。 -r媒体不能被删除,只能被破坏。对于-rw,我不知道需要多少次重复写入才能真正擦除这些位。

3

你应该考虑使用Linux命令shred,它将覆盖目标文件多次删除完全之前,这使得它是'不可能'恢复文件。

您可以阅读关于Shred命令here的一些信息。

仅仅移动文件并不能很好地覆盖你,如果你将它移动到外部存储器,文件的本地版本将被删除,就像rm命令一样。

1

否(并不仅仅是因为将它移动到计算机上的其他位置不会将其从计算机中移除)。完全删除文件的方法是完全覆盖其驻留的磁盘上的空间。 linux命令shred将完成此操作。

1

基本上,不,在大多数文件系统中,您不能保证文件被覆盖而不会变得非常低。删除文件和/或移动它只会改变指向文件的指针,而不会以任何方式改变文件系统中的文件存在。即使是linux命令shred也不能保证文件在许多文件系统中被移除,因为它假定文件被覆盖到位。

在SSD上,您的数据更有可能长期存在,因为即使文件系统尝试覆盖块,SSD也会重新映射以写入新块(擦除需要很长时间,如果它写的东西会很慢)

最后,使用现代的文件系统和磁盘,最好的机会,你必须安全地存储文件是让他们加密开始。如果它们以明文形式存储在任何地方,则它们可能很难删除,并且从磁盘(或针对该事件的备份)恢复加密文件对没有加密密钥的任何人都没有多大用处。