错误“文件是指向不存在目标的符号链接”

laz*_*rus 3 emacs symbolic-link

虽然通过两个活动缓冲区工作在Emacs的sum.cpptemplate.cpp,我不小心关闭了我的笔记本电脑(Ubuntu的15.04(生动黑脸)),但不关闭的Emacs,并且不保存这两个文件。

当我重新启动笔记本电脑并在 Emacs 中列出目录内容时C - x C - f /C++/,我得到以下信息。

Ubuntu 上 Emacs 的屏幕截图

.#sum.cpp 之后的行是什么意思?

lrwxrwxrwx  1 anupam anupam   41 Aug  6 00:53 .#sum.cpp -> anupam@anupam-Vostro-3546.3489:1438790786
Run Code Online (Sandbox Code Playgroud)

我知道 Emacs 通过 # by 保存未保存的缓冲区autosave,但是在访问时#sum.cpp为什么会显示以下内容?

文件是不存在的目标的符号链接?

Flo*_*sch 6

自动保存的文件是#sum.cpp#. 的符号链接 .#sum.cpp(好像用户名,主机名和一些时间戳)被用于通过Emacs的存放一些内部数据

由于符号链接的目标只是一些短文本(如果您访问符号链接的内容,则将其解析为路径),因此符号链接有时用于存储少量数据。在这种情况下,目标很可能不是有效的文件路径,如果您尝试访问它,则会出现错误。

那是因为创建一个符号链接是一个原子操作:要么是用完整的内容创建了符号链接,要么根本就没有创建。相比之下,创建一个普通文件并用内容填充它不是原子性的,如果出现错误,您最终可能会得到一个空文件或只有部分内容。