当电脑编辑文件时,它是否删除原始文件?

分享于 

2分钟阅读

电脑

  繁體 雙語

问题:

如果 code.txt ( 或者其他文件) 被编辑并保存:

[Theory 1 ] 电脑完全删除 code.txt,并从头开始创建一个新的code.txt ( 编辑版本)。

[Theory 2 ] 编辑部分十六进制的code.txt.,所以不会发生删除。

计算机工作的理论?


回答 1:

可能是- 它依赖于使用的文本编辑器。

'文本文件'的概念不是内置到计算机中的,每个操作系统可以不同地管理文件,而每个文本编辑器可以不同的方式使用。

实际上,你会发现有两种机制的文本编辑器。 几乎所有操作系统都允许直接覆盖现有文件,所以简单的编辑器通常只要求操作系统直接写入原始文件,如记事本中的操作,如果你丢失了电源,那么就会有危险。 因此出于可靠性考虑,许多编辑器故意将更新的数据保存到新文件中,并删除原始文件。

( 我认为更新更常见于十六进制编辑器,它的中大多数编辑不会插入/删除字节)。

甚至还有第三种操作模式- 编辑器可能首先备份旧文件,然后直接将新数据写入文件。

它也依赖于保持文件的文件系统。 如果一个程序要求写入现有文件,文件系统 就会覆盖旧的数据。

尽管这种程序并不需要任何新的数据,但是在"copy-on-write"模式下,任何新的数据都会被写到另一个位置,无论该。 同样,这有可能提高可靠性,因为已经中断的更改可以完全恢复。

在某些文件系统中,( 比如Btrfs或者 ext4 ) 是可选特性;在其他文件系统中( 比如 )。 日志结构文件系统( log ) 是核心设计的一部分。


回答 2:

通常来说,计算机将分配原始文件所在的内存,但这意味着不再在文件浏览器中显示它,而内存中的单元格允许在将来被覆盖。

对于新文件是否写入到同一个地方,主要是要使用的软件和如何使用内存。



文件  EDI  DEL  
相关文章