File io 我可以这样安全地删除文件吗?
假设我有一个10 MB的文件,并完成以下步骤:File io 我可以这样安全地删除文件吗?,file-io,hard-drive,File Io,Hard Drive,假设我有一个10 MB的文件,并完成以下步骤: 用我最喜欢的编程语言打开它进行读/写 抹去溪流中的一切 将10 MB的随机数据写入同一个流 将更改保存到磁盘 通过正常方式删除该文件 我能否确定新的10 MB在硬盘驱动器的扇区级别成功地重写了旧的10 MB?或者“擦除流中的所有内容”步骤是否可能删除旧文件,并可能将新的10 MB写入新位置?专业人员可能仍然可以访问数据,他们知道自己在做什么,并且可以访问磁盘上的原始数据(即,无需通过文件系统) 您的程序基本上相当于Linuxshread命令,其中包
我能否确定新的10 MB在硬盘驱动器的扇区级别成功地重写了旧的10 MB?或者“擦除流中的所有内容”步骤是否可能删除旧文件,并可能将新的10 MB写入新位置?专业人员可能仍然可以访问数据,他们知道自己在做什么,并且可以访问磁盘上的原始数据(即,无需通过文件系统) 您的程序基本上相当于Linux
shread
命令,其中包含以下警告:
注意:请注意,shred依赖于一个非常重要的假设:
文件系统就地覆盖数据。这是传统的
方法,但许多现代文件系统设计不能满足这一要求
假设。下面是使用shred的文件系统的示例
无效,或不能保证在所有文件系统模式下都有效:
- 日志结构或日志记录的文件系统,如随 AIX和Solaris(以及JFS、ReiserFS、XFS、Ext3等)
- 写入冗余数据并在某些情况下仍能继续运行的文件系统 失败,例如基于RAID的文件系统
- 生成快照的文件系统,如Network Appliance的NFS服务器
- 缓存在临时位置(如NFS)的文件系统 版本3客户端
- 压缩文件系统
还有其他情况,例如具有磨损均衡功能的SSD。专业人员可能仍然可以访问数据,他们知道自己在做什么,并且可以访问磁盘上的原始数据(即,无需通过文件系统) 您的程序基本上相当于Linux
shread
命令,其中包含以下警告:
注意:请注意,shred依赖于一个非常重要的假设:
文件系统就地覆盖数据。这是传统的
方法,但许多现代文件系统设计不能满足这一要求
假设。下面是使用shred的文件系统的示例
无效,或不能保证在所有文件系统模式下都有效:
- 日志结构或日志记录的文件系统,如随 AIX和Solaris(以及JFS、ReiserFS、XFS、Ext3等)
- 写入冗余数据并在某些情况下仍能继续运行的文件系统 失败,例如基于RAID的文件系统
- 生成快照的文件系统,如Network Appliance的NFS服务器
- 缓存在临时位置(如NFS)的文件系统 版本3客户端
- 压缩文件系统
还有其他情况,例如具有磨损水平的SSD。
< P>不,因为在任何现代文件系统提交都是原子的,几乎可以肯定的是,10MB没有覆盖旧的10MB,这是在我们考虑真正保证这一点的日志文件系统之前。 < P>不,因为任何现代文件系统提交都是原子的,几乎可以肯定的是,10MB没有覆盖旧的10MB,这是在我们考虑日志文件系统实际上保证这一点之前。 < P>简短回答:No./P> 这可能取决于您的语言和操作系统。我有一种感觉,流调用被传递到操作系统,然后操作系统决定做什么,所以我倾向于你的第二个问题是正确的,只是为了安全起见。此外,磁性伪影将在删除后出现,该伪影仍可用于恢复所述数据。即使用全零覆盖相同的扇区,也可能使数据处于褪色状态。通常,建议进行多次删除操作。有关解释或开源C#文件碎纸机的信息,请参阅 对于Windows,您可以使用实现国防部清除和消毒标准的命令行实用程序: 安全删除应用程序覆盖磁盘上已删除文件的数据 使用显示为使磁盘数据不可恢复的技术,甚至 使用可以读取磁性介质中图案的恢复技术 显示弱删除的文件 特别值得注意的是: 压缩、加密和稀疏由16个集群中的NTFS管理 阻碍。如果程序写入此类文件的现有部分NTFS 在磁盘上分配新空间以存储新数据,并在 已写入新数据,以前取消分配群集 被文件占用 简短回答:没有 这可能取决于您的语言和操作系统。我有一种感觉,流调用被传递到操作系统,然后操作系统决定做什么,所以我倾向于你的第二个问题是正确的,只是为了安全起见。此外,磁性伪影将在删除后出现,该伪影仍可用于恢复所述数据。即使用全零覆盖相同的扇区,也可能使数据处于褪色状态。通常,建议进行多次删除操作。有关解释或开源C#文件碎纸机的信息,请参阅 对于Windows,您可以使用实现国防部清除和消毒标准的命令行实用程序: 安全删除应用程序覆盖磁盘上已删除文件的数据 使用显示为使磁盘数据不可恢复的技术,甚至 使用可以读取磁性介质中图案的恢复技术 显示弱删除的文件 特别值得注意的是: 压缩、加密和稀疏由16个集群中的NTFS管理 阻碍。如果程序写入