那么,该条目会保留在那里吗,就像您按 Shift+Delete 一样,还是会被永久删除?
请注意,这不是我之前问题的重复,我只是没能将两者整合在一起。我认为这两个问题是分开的。
Ext4 和 NTFS。“其他地方”位于同一文件系统中,但我也很好奇如果我将其移动到另一个文件系统(即在 Ext4 和 NTFS 之间来回移动)会发生什么。
答案1
在 NTFS 和 EXT4 中,文件不会被立即删除。
将它们从一个位置移动到另一个位置不会改变文件的物理位置,只会改变指向该文件的指针。
至于删除,在绕过回收站时,指向文件的指针会被删除。这会将空间标记为可用,但该文件的原始数据仍保留在原处,直到被覆盖。这就是数据恢复工具能够恢复已删除文件的方式。它们查看可用空间并尝试检测其中的数据是否是文件。
答案2
此答案适用于 NTFS
原始文件的条目还会保留在那里吗?
是的MFT 条目的文件(没有“原始”和“副本”)保留在那里。操作系统只需要:
- 更新 MFT 条目中的父 id
- 从旧父目录的子目录中删除该元素
- 将元素添加到新父目录的子目录中
目录的每个 MFT 条目都有一个$INDEX_ROOT
列出几个子项的属性,而其余的则保存在其他地方(这个位置通过具有一个或多个$INDEX_ALLOCATION
属性来定位)。
当操作系统在同一个文件系统内移动文件时,这些“子列表”(虽然从技术上讲它们是B+ 树) 已更新。
注意也许可以雕刻残留的条目来自索引记录的松弛空间。
我也很好奇如果我将它移动到另一个文件系统会发生什么
将文件移动到不同的文件系统将被视为:
- 复制到新文件系统
- 立即从原始文件系统中删除该文件
在这种情况下,MFT 条目也保留,但被标记为已删除。当创建新文件并需要额外的 MFT 条目时,可以覆盖该条目。