每当我打开 LibreOffice 文档时,LibreOffice 都会沿着原始文件创建一个锁定文件。该文件具有如下所示的命名架构:
.~lock.MyDocument.odt#
这是 LibreOffice 特定的命名模式吗? Linux 上常见吗?为什么 LibreOffice 恰恰使用这种模式?他们为什么选择这些特定的额外角色?
答案1
前导点从某些目录列表中隐藏该文件。这来自该ls
命令的历史行为,这导致许多程序使用前导点来表示在目录列表中不可见的文件,这反过来又导致许多文件管理器默认隐藏此类文件。
波形符是文件名中的不常见字符,因此与用户选择的文件名冲突的风险不大。为什么要用波形符?波浪号在文件名的开头尤其不常见,因为前导~
在 shell 和许多其他程序中意味着“主目录”。因此,前面加上波浪线不太可能导致冲突。一个可能的额外因素,因为当它处于结尾文件名,这是命名备份的传统方式,因此在文件名中添加波浪号有一种“某个文件与另一个文件相关,但不是用户通常想要的文件”的味道(但它不能在最后,因为它已经被占用了)。波形符还可能受到 Microsoft Office 使用的锁定文件的启发,该文件以~$
.
末尾的散列确保该文件没有其他程序可以识别的扩展名。如果文件名为.~lock.MyDocument.odt
,文件管理器会建议在 LibreOffice 中打开它。为什么是哈希而不是其他字符?哈希有一个在锁定文件名中使用的小传统,例如 Emacs 使用.#
后跟正在编辑的文件的名称。
答案2
如果程序使用锁定文件进行任何操作,则由程序选择该锁定文件的名称。
LibreOffice 选择的名称似乎是一个隐藏名称,其构造方式不太可能与预先存在的文件名冲突,同时仍然特定于您当前正在编辑的任何文档。