如何一次全部更新boosts符号链接?

时间:2018-08-23 10:13:30

标签: boost symlink

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

我的实际问题是如何使第一颗恒星记住,以便第二颗恒星具有相同的名称?对不起,我没有专业术语,我不知道该如何措辞更好。

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

1 个答案:

答案 0 :(得分:0)

我刚刚写了一个小的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)