我想从bash脚本中更改符号链接的目标.问题是符号链接非常重要(/bin/sh就是这样),我想以时尚的方式做到:
我想到了两种方法.使用普通ln:
ln -fs /bin/bash /bin/sh
Run Code Online (Sandbox Code Playgroud)
或使用mv:
ln -s /bin/bash /bin/sh.new
mv /bin/sh.new /bin/sh
Run Code Online (Sandbox Code Playgroud)
哪一个更适合我的需求?是否有可能其中一个会尝试替换符号链接目标而不是符号链接本身?
ire*_*ses 23
Renaming(mv)是一个原子操作; 创建一个新的符号链接不是(删除旧的符号链接;创建一个新的符号链接).所以你应该使用mv:
$ ln -s new current_tmp && mv -Tf current_tmp current
Run Code Online (Sandbox Code Playgroud)
这是一篇讨论此事的博客文章.另外,如果您担心会发生什么,为什么不先在非关键符号链接上尝试呢?
| 归档时间: |
|
| 查看次数: |
9798 次 |
| 最近记录: |