我在Linux操作系统中使用Google Chrome,我进入“~/.config/google-chrome/Default”,这是默认的chrome配置目录。
我将原始书签文件移动到另一个地方,并在这里创建一个新的书签文件,该文件是指向移动的原始书签文件的硬链接文件。
但是在我保存新书签后,chrome 会删除新的书签文件并创建一个新文件。
我很困惑,在两个文件的文件名相同的情况下,chrome 如何识别书签文件不是原始文件。
答案1
我认为您对 Chrome 的行为的解读有些过头了。一般来说,没有理由相信该软件是主动恶意的。您还使用了硬链接,这在极端情况下可能会产生一些不直观的行为。
具体来说,使写入至少具有半原子性的常用方法是用新名称重写文件的内容,然后将新文件移动到旧文件的位置。
作为一个逐步的过程,它看起来是这样的:
- 生成目标目录中不存在的随机文件名
- 创建临时文件
- 将数据写入临时文件
- 将旧文件重命名为其他名称
- 重命名临时文件,使其与原始文件同名
- 删除旧文件
此过程可确保磁盘上始终至少存在一份有效的数据副本。因此,即使程序中途崩溃,也可以轻松恢复到已知的有效状态。
然而,结果是,步骤#4 破坏了硬链接,而步骤#5 则以相同的名称放置了其他内容。
如果你只是希望能够以不同的名称访问你的书签文件,我建议你这样做其他命名符号链接到书签文件。