Linux 下 Inode 被 Vim 修改

当在Linux上使用Vim编辑文件后,文件的Inode值可能会改变,导致容器中的服务无法识别到文件更新。问题源于Vim在保存时可能修改Inode,特别是在其他用户具有写权限的情况下。不同系统、Vim版本和文件权限对此有影响。
摘要由CSDN通过智能技术生成

Linux 下 Inode 被 Vim 修改

问题来源

在本地开发项目的时候,docker 容器中运行的某个服务依赖外部宿主机挂载的配置文件 config.ini,当我在宿主机上使用 vim 编辑文件之后,向容器中的进程发送信号 reload,进程日志中可以看见进程已经收到信号并进行了文件 reload,但实际上外部配置的 config.ini 文件没有生效

排查

容器中的配置文件内容还是原来的,没有更新,所以即使重载了不会有任何变化。宿主机中的配置文件内容确实已经是最新。对比 inode 索引值发现两个文件的值不一样了。再次进行测试观察文件 inode 索引值的变化,发现使用 vim 修改后的 inode 值发生了变化,也就是说在 vim 执行 :wq 命令的时候,将原来文件的 inode 信息释放了,并修改了源文件的 inode 值

vim 修改 inode 的原因

经过排查后发现在 macOs 系统下使用 vim 修改文件不会有有 inode 变更的情况发生,怀疑这和 vim 版本的具体实现有关系

可以发现,在不同平台的 vim 版本下,修改文件时候 是否修改 inode 信息可能是有不同表现的(注意:这里我们都没有修改 vim 影响 inode 变更的相关配置)

LInux 下原生 Vim 修改 inode 的可能原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值