目录中已打开的文件在目录删除后仍可保存 - Linux

目录中已打开的文件在目录删除后仍可保存 - Linux

这是 Linux 令人讨厌的功能。

如果我打开目录中的文件,然后删除该目录,并将另一个同名目录复制到同一位置,我仍然可以编辑和保存打开的文件,但它会进入垃圾文件!我犯了好几次同样的错误。我继续编辑打开的文件,以为它会被保存到新复制的目录中,但事实并非如此,最后我丢失了所有的编辑。

我可以禁用该功能吗?

答案1

这是按设计运行的。文件描述符即使在文件取消链接后仍可保持打开状态。unlink(2) 的手册页显示:

unlink() 从文件系统中删除一个名称...如果该名称引用套接字、fifo 或设备,则它的名称将被删除,但打开该对象的进程可以继续使用它。

相关内容