我在/ usr / lib下有boost 1.58.0和1.67.0库,我的libboost _ *。so指向1.67 lib。现在,我想使用诸如ln -f libboost_*.so.1.58.0 libboost_*.so
这样的命令一次更改所有符号链接。
我的实际问题是如何使第一颗恒星记住,以便第二颗恒星具有相同的名称?对不起,我没有专业术语,我不知道该如何措辞更好。
是否有一个简单的解决方案,还是我必须写一个将第一个匹配项保存到某个中间变量中的shellscript?
答案 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)