使用 rm -rf 删除文件/目录后,但如果文件/目录在 VS Code 或 anorhet 应用程序中仍然打开,会发生什么情况?

使用 rm -rf 删除文件/目录后,但如果文件/目录在 VS Code 或 anorhet 应用程序中仍然打开,会发生什么情况?

这种情况经常发生。我删除了目录,rm -rf但发现它仍在 VS Code 等应用程序中打开。

我担心的是,这是否会导致某些文件夹被复制,以便 VS Code 仍然可以在打开的文件上操作。如果是这种情况,关闭应用程序后,我是否需要找到这些重复的副本并将其删除?

提前致谢。

答案1

在大多数操作系统中,文件名和文件数据之间存在差异。

文件名位于分区的文件表中,指向磁盘上的文件数据。打开文件实际上只是获取指向数据的指针。

操作系统会计算文件数据的连接数,当引用数变为零时,操作系统就会删除它。

打开文件后,将有两个对数据的引用,一个来自文件表,一个来自程序。

如果您随后删除文件名,则引用数将减少一个。但仍然会保留打开该文件的程序的引用。

当程序稍后关闭文件(或终止)时,引用的数量变为零,因此文件数据最终被释放成为可用空间。

总之,您不需要做任何事情 - 操作系统会为您完成所有必要的簿记,因此一切都是自动的。

当文件在 VS Code 中打开时,如果您删除了文件名,然后想要返回并撤消删除,您可以从 VS Code 将文件保存回其原始名称。

答案2

该应用程序只是将其保存在 RAM 中。除非您尝试保存它,否则它不会发现。

相关内容