在ext4(或ext*, ntfs, fat)文件系统中,如果我覆盖非连续文件,是否会使用相同的非连续存储空间,或者有不同的处理方式?
这取决于覆盖什么以及文件系统通常如何实现写入。
例如,shred
尝试就地覆盖文件以擦除它;但即使它成功了,也不能保证其他地方不会有任何旧副本。通常就地编写的程序的另一个例子是数据库。
大多数其他程序(例如 Office 或文本或图像编辑器)无论如何都必须重写整个文件,而不是只更改旧文件的一小部分。他们通常会先删除/截断文件,然后在其位置创建一个新文件,很可能最终位于磁盘上的另一个位置。有时他们甚至创建一个新文件(保证位于新位置,因为旧文件尚未删除),并且仅在成功时替换/重命名旧文件。
如果您的目标是删除敏感数据,您可能应该覆盖文件系统中的所有可用空间或整个文件系统设备。您不能依赖文件系统执行您想要的操作,也不能依赖各种程序永远不会创建仍留在某处的另一个副本。