当我们修改文件的一部分并保存它时,文件系统会发生什么?

当我们修改文件的一部分并保存它时,文件系统会发生什么?

我知道文件以块的形式保存在磁盘或 SD 卡上。 (SD 卡作为块设备,以 512 字节块进行写入或读取。文件系统本身可以管理由这些块组成的更大大小,例如 4KByte?我记得这就是所谓的分配大小,我知道我们可以设置这个值格式化磁盘时。)

当我们编辑一个文件时,无论是纯文本文件还是powerpoint文件,然后保存它,文件系统会发生什么?

我的猜测是操作系统中的文件系统只是从文件更改的位置开始为块分配新的块,并将更改位置后的部分存储到新分配的块。或者,如果应用程序编写得更智能,它将检测更改并尝试最小化新的块分配(我的意思是在尽可能少的块中容纳更改并将它们链接到现有文件块,例如替换中间的块链表)。当然,这会浪费新分配的块中的一些空间,但会保持修改后后面部分中的块完好无损。

如果有人能回答我的问题或告诉我我的猜测是否正确,我会很高兴。

添加:从评论中,我认为这取决于操作系统和应用程序。如果我是编写应用程序(如 power point 或 Word 或任何软件)的程序员,如果适合更改,我将覆盖磁盘上的分配。如果有人用一些已知的例子来详细说明这一点,我将不胜感激。

相关内容