当数据从回收站中删除时,会发生什么?

She*_* A. 48 windows-7 recycle-bin

如果我在这里错了,请纠正我,但是当您从 PC 中“删除”某些内容时,您的计算机所做的就是用 0 替换 1 来覆盖一些二进制文件。(或类似的东西)因此,当您将某些内容发送到回收站时,它会覆盖文件的一部分,而当您从回收站中删除时,它会写入更多内容?

Boa*_*ann 86

这两个操作都不会覆盖文件。

将文件移动到回收站就是这样做的 – 移动文件,当新文件夹位于同一磁盘上时,它与任何其他“移动”操作相同:文件名条目从其原始文件夹移动到另一个文件夹,但是文件的内容仍然在磁盘上,没有被物理移动、修改甚至查看。

从回收站中删除文件(或直接使用Shift+Delete删除)会从其文件夹中删除文件名条目。文件先前占用的磁盘部分仍然没有被修改或覆盖,并且仍然包含所有文件数据,但该数据不再链接到文件名。但盘面的现货记录为“免费”的,所以未来写入磁盘,可以重复使用的空间,如果你继续使用磁盘空间几乎肯定会被覆盖,最终

如果您需要防止恢复已删除的数据,可以使用特殊工具来安全地覆盖数据。默认情况下不会这样做,因为它很慢并且会增加磁盘的磨损。

  • 为了扩展“移动文件”位,回收站只是您硬盘驱动器上的一个普通文件夹,Windows 以特殊方式显示给您。 (34认同)
  • @Mark 不太清楚,我相信 - 每个驱动器上都有一个“回收站”文件夹(是“.$TRASHES”吗?记不清了),当您打开回收站时,Windows 会将所有这些文件夹合并。所以你的 C: 驱动器和 E: 驱动器都有一个文件夹,因为 Windows 不想在你删除它时复制所有内容(这就是重点!)。 (9认同)
  • Windows Vista、7 和 8(和 8.1)使用 `$RECYCLE.BIN`。@Riking 您正在考虑适用于 Linux 的 Nautilus;它使用`.Trashes`。 (7认同)
  • @Yaitzme 移动文件通常不会移动文件的内容。如果源和目标在同一分区上,则仅移动文件的名称(即,将指向该文件的指针添加到新目录,并从旧目录中删除)。数据可以留在同一个地方。只有在跨分区移动文件时,才需要复制所有内容。 (7认同)
  • 尽管它依赖于文件系统,但文件名通常不会在删除时从文件夹中删除。例如,在 FAT/FAT32 中,仅目录中文件名的第一个字符被替换为 0xE0 字节,这使得整个文件,包括名称的第一个字符以外的所有字符都可以完全恢复,如果没有发生重用以前的簇链的写操作分配给删除的文件。 (3认同)

小智 36

一个文件分为两部分:

  1. 记录文件名的目录条目,还包含磁盘上包含文件数据内容的块列表。操作系统然后“知道”这些块正在使用中。
  2. 包含文件数据内容的实际块

当文件被删除时:

  1. 目录条目中的块列表返回给标记为空闲的操作系统。目录条目被删除,因此文件从文件系统中“消失”。
  2. 实际的块没有被触及,所以文件的数据内容保持不变,直到其他一些新文件覆盖它们。这就是文件恢复软件经常可以重建已删除文件的原因(但前提是在删除后立即使用)。


Elo*_*ims 10

您需要澄清您是在问物理驱动器上发生了什么,还是软件级别上发生了什么。

在物理方面,它取决于驱动器:

  • 在磁驱动器上,覆盖位或写入位是相同的操作,因此文件通常不会被物理删除(操作系统只是更改分区的内容表并将空间标记为空闲)。

  • 在 SSD 驱动器上,无法覆盖现有数据,因此文件通常会被物理删除(请参阅http://en.wikipedia.org/wiki/Trim_(computing)

在软件上,取决于您使用的文件系统,大多数情况下,仅更改分区的目录。

  • AFAIK,Trim 命令不会物理删除文件(正如 ADTC 提到的,这将是一项代价高昂的操作。它只是让驱动器的固件知道它不必再保留数据。所以这在概念上与发生在文件系统,只是在固件级别。 (6认同)
  • “移动到回收站会移动文件。” 并不真地。文件本身不会移动;它仍然像以前一样在磁盘上占用相同的 LBA。甚至文件记录也是一样的。唯一“移动”的是目录条目,从文件的原始目录到“回收站”的目录。 (4认同)
  • 当空白页的数量足够低时,SSD 将搜索一个只包含“过时”页的块。如果找到这样的块,它将被删除。否则,它将找到包含最过时页面的块,将非过时页面复制到剩余的空白页面,并将该页面标记为过时。一旦对页面上的所有块完成此操作,该页面将不再包含任何非过时块,因此可能会被回收。请注意,如果文件系统认为页面无用,但驱动器不知道这一点,则可能会浪费时间复制无用数据。 (2认同)