今天在写脚本的时候遇到好多问题,以下就是个典型:
cat /etc/hosts | uniq > /etc/hosts
cat /etc/hosts
我们会发现结果是第一次的时候没有问题,但是从第二次开始,/etc/hosts文件就开始变成空的了,具体是什么原因呢,还是不懂就问呗,高手说是文件锁机制:
管道命令不是前一个命令完全执行完再传递给后面的命令的啦。。。
是边传递边执行 又读又写的,肯定会出问题!
是边传递边执行 又读又写的,肯定会出问题!
修改方案:
cat /etc/hosts | uniq > /etc/hosts.tmp
mv /etc/hosts.tmp /etc/hosts
cat /etc/hosts
楼下有高手的,有补充的也可以在此讨论O(∩_∩)O哈!
本文探讨了在使用cat和uniq命令更新/etc/hosts文件过程中出现的问题,并提供了一个有效的解决方案,即通过创建临时文件来避免文件锁机制导致的数据丢失。
2022

被折叠的 条评论
为什么被折叠?



