如何使用通过在文件名上使用管道剪切获得的缩写名称来创建目录中所有文件的符号链接

如何使用通过在文件名上使用管道剪切获得的缩写名称来创建目录中所有文件的符号链接

我有一个充满库 ( *.so.0.*) 的目录,我想用find它来创建每个文件的符号链接,名为*.so.0.

这是一个(无效的)尝试:

find $HOME/.local/lib64/ -name "lib*.so.0.*" -execdir ln -s {} $(echo {} | cut -d . -f 1-4) \;

但我找不到为什么它不起作用。

我尝试只使用一个库,使用ln -s ./libfoo.so.0.12.0. $(echo ./libfoo.so.0.12.0. | cut -d . -f 1-4),结果是./libfoo.so.0.

答案1

您正在尝试设置一组替代的 ELF 库来运行应用程序,因此不要手动创建符号链接,而是直接进入问题的预期应用程序:ldconfig $HOME/.local/lib64/应该为您更新目录中的所有符号链接。

它们也不总是.so.0如此,这将取决于 ELF 库中的 SOVERSION 数据。

相关内容