![为什么删除文件比复制更快?](https://linux22.com/image/1397804/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E6%AF%94%E5%A4%8D%E5%88%B6%E6%9B%B4%E5%BF%AB%EF%BC%9F.png)
为什么复制文件需要更多时间,比如说 10 分钟,但删除同一文件所需的时间却很少,只需 10-20 秒。
答案1
当您复制文件时,必须传输或移动每个位或字节。
对于删除操作,只需将每个簇的头部标记为“已删除”。文件完好无损,只是对操作系统隐藏了。这也是删除的文件如此不安全的原因,只需找到可以忽略文件已删除头部的软件,文件就可以轻松读取。
答案2
删除文件时,大多数操作系统会将文件标记为已删除,但实际上不会从硬盘中删除数据。这样可以快速删除,因为操作系统只需设置一个标志,而不会触及任何数据。
复制文件时,实际上必须复制数据才能复制文件。这意味着操作系统必须先读取数据,然后将其写入另一个位置,这需要 2 次操作,而设置删除标志只需一次。由于读取和写入不是即时的,因此这 2 次操作也需要更长的时间。
答案3
David Schwartz 的评论提供了最简洁的比喻:
出于同样的原因,读一本书比把它扔进垃圾桶要花更长的时间。
答案4
文件由一系列属性组成,例如其名称、位置、访问权限等。
当您复制文件时,您的系统必须首先:
- 为新文件创建空间
- 在目录中创建新条目(记录其位置等)
- 读取要复制的文件的内容
这是操作系统必须遵循的三个步骤。
另一方面,当您删除文件时,操作系统只需搜索命名文件并将其删除。