如何一次更新所有增强符号链接?



我在/usr/lib 下有 1.58.0 和 1.67.0 库,我的 libboost_*.so 指向 1.67 库。现在我想用这样的命令一次更改所有符号链接ln -f libboost_*.so.1.58.0 libboost_*.so.

我的实际问题是,如何让第一颗星记住,让第二颗星星同名?请原谅我缺少行话,我不知道如何更好地表达这一点。

有没有一个简单的解决方案,或者我必须编写一个 shellscript 将第一个匹配项保存到某个中间变量中?

我刚刚写了一个小的python脚本。看看是否有更好的外壳解决方案仍然很有趣。

import os
dir = "/usr/lib/x86_64-linux-gnu"
files = os.listdir(dir)
print(files)
for file in files:
if False or os.path.islink(os.path.join(dir, file)):
if "boost" in file:
print("Creating symlink for file " + file)
src = os.path.join(dir, file + ".1.58.0")
dst = os.path.join(dir, file)
print(src)
print(dst)
try:
os.symlink(src, dst)
except OSError:
os.remove(dst)
os.symlink(src, dst)

最新更新