ファイル名にパイプカットを使用して取得した省略名を使用して、ディレクトリ内のすべてのファイルへのシンボリックリンクを作成する方法

ファイル名にパイプカットを使用して取得した省略名を使用して、ディレクトリ内のすべてのファイルへのシンボリックリンクを作成する方法

という名前の各ファイルのシンボリックリンクを作成するために*.so.0.*使用したいライブラリ()でいっぱいのディレクトリがあります。find*.so.0

(非効果的な)試みは次のとおりです。

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

しかし、なぜ動作しないのか見つかりません。

を使用してライブラリを1つだけ試しましたが、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.0ELFライブラリのSOVERSIONデータに依存します。

おすすめ記事