锁定文件命名模式

锁定文件命名模式

每当我打开 LibreOffice 文档时,LibreOffice 都会沿着原始文件创建一个锁定文件。该文件具有如下所示的命名架构:

.~lock.MyDocument.odt# 

这是 LibreOffice 特定的命名模式吗? Linux 上常见吗?为什么 LibreOffice 恰恰使用这种模式?他们为什么选择这些特定的额外角色?

答案1

前导点从某些目录列表中隐藏该文件。这来自该ls命令的历史行为,这导致许多程序使用前导点来表示在目录列表中不可见的文件,这反过来又导致许多文件管理器默认隐藏此类文件。

波形符是文件名中的不常见字符,因此与用户选择的文件名冲突的风险不大。为什么要用波形符?波浪号在文件名的开头尤其不常见,因为前导~在 shell 和许多其他程序中意味着“主目录”。因此,前面加上波浪线不太可能导致冲突。一个可能的额外因素,因为当它处于结尾文件名,这是命名备份的传统方式,因此在文件名中添加波浪号有一种“某个文件与另一个文件相关,但不是用户通常想要的文件”的味道(但它不能在最后,因为它已经被占用了)。波形符还可能受到 Microsoft Office 使用的锁定文件的启发,该文件以~$.

末尾的散列确保该文件没有其他程序可以识别的扩展名。如果文件名为.~lock.MyDocument.odt,文件管理器会建议在 LibreOffice 中打开它。为什么是哈希而不是其他字符?哈希有一个在锁定文件名中使用的小传统,例如 Emacs 使用.#后跟正在编辑的文件的名称。

答案2

如果程序使用锁定文件进行任何操作,则由程序选择该锁定文件的名称。

LibreOffice 选择的名称似乎是一个隐藏名称,其构造方式不太可能与预先存在的文件名冲突,同时仍然特定于您当前正在编辑的任何文档。

相关内容