我正在绑定安装一个这样的文件:
mount --bind a b
a
之后,如果我读取 ,我可以看到 的内容b
。但是,如果我现在对 进行更改a
,则该更改不会反映在 中b
,这是出乎意料的。
我是否误解了绑定挂载的作用?
答案1
当您绑定挂载到文件时,它会链接到文件的实际 inode(就像硬链接一样)。因此,如果您使用生成新文件的编辑器,您将看不到更改。
当您就地修改文件(如echo text >> alias
)时,它将看到更改。
提醒一下,如果文件带有 ,您可以看到 inode 编号ls -li
。
有些编辑器允许关闭新临时文件的交换。这有点冒险,但可以保留文件身份。(我认为vim您需要这个backupcopy=yes
选项。
如果你想知道有什么好的替代方案,符号链接可以通过名称指向别名文件或绑定挂载整个目录。