我最近阅读了一些更新服务器代码的源代码。而不只是写这个来更新myfile
:
mv myfile.inactive myfile
有这个:
rm myfile
ln -s myfile.inactive myfile
有什么区别?你为什么要第二种方式呢?
myfile
可能是可执行文件,也可能是当前正在运行的进程,如果这会产生影响。
答案 0 :(得分:2)
第一个版本将myfile.inactive
重命名为myfile
。在该命令之后,再没有myfile.inactive
第二个创建myfile.inactive
的符号链接。所以这个文件仍然存在。删除(rm myfile
)文件时,只删除符号链接。请记住,如果更改myfile,它也会在myfile.inactive中更改。
此版本很容易更改您正在使用的版本。例如myfile.debug,myfile.live,myfile.version1,myfile.version2 ...你只需要将符号链接更改为其中一个文件以“激活”你想要的文件。