我有大量这样的共享库:
libexpat.so.1.6.7 libqquicklayoutsplugin.so libstdc++.so.6.0.24
libexportlib.so.1.0.0 libqsvg.so libsystemd.so.0.19.0
libfontconfig.so.1.10.1 libQt53DAnimation.so.5.11.3 libwidgetsplugin.so
libfreetype.so.6.16.0 libQt53DCore.so.5.11.3 libwindowplugin.so
libgcc_s.so.1 libQt53DExtras.so.5.11.3 libX11.so.6.3.0
libgcrypt.so.20.2.2 libQt53DInput.so.5.11.3 libX11-xcb.so.1.0.0
我试图遍历我所有的共享库并通过删除它们的版本号(如果它们有任何版本号)来创建符号链接。例如:
libgcrypt.so.20.2 -> libgcrypt.so.20.2.2
libgcrypt.so.20 -> libgcrypt.so.20.2.2
libgcrypt.so -> libgcrypt.so.20.2.2
到目前为止,我已经尝试找到所有版本号为:
find . -name '*.so.*'
但我不知道如何使用awk
和ln -s
命令:
find . -name '*.so.*' -exec #awk and ln -s commands goes here# \;
有人可以给我提示吗?
这似乎真的是其他事情的工作(
ldconfig
?),但是:shell 命令遍历参数(文件名),并为每个文件名剥离扩展名以获取链接目标(直到目标没有扩展名,在
.so
被剥离之后)。删除echo
以实际建立链接。