「foo」というツールを書くときに、PROJECT/bin/fooが../libexec/fooにシンボリックリンクされているのはなぜですか?

「foo」というツールを書くときに、PROJECT/bin/fooが../libexec/fooにシンボリックリンクされているのはなぜですか?

私はソースコードを読みながらbashとunixを学びました。

この部分はなぜこのように処理されたのか理解できません。

主なツール実行ファイルはシンボリックリンクです。これにはどんな利点がありますか?

ここに画像の説明を入力してください。

源泉

ベストアンサー1

kmod 自己呼び出しと同様に、マルチコールバイナリの場合、アイデアは単純なユーザーインターフェイスを提供することです。一部はオプションが少なくなります。

man kmodは、「ほとんどのユーザーは別の名前で実行します」と言います。

$  ls ??mod ???mod modprobe kmod -l
-rwxr-xr-x 1 root root  63496 Mar 11  2019 chmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 depmod -> kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 insmod -> kmod
-rwxr-xr-x 1 root root 161856 Feb 13  2019 kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 lsmod -> kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 modprobe -> kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 rmmod -> kmod

bin/execあなたの例では、これは「一般的な」プラスの代わりに大きな実行可能ファイル/ライブラリがあることを意味しますsome/lib/library。したがって、任意のシンボリックリンクを使用して呼び出します。または:rbenvどこでもシンボリックリンクを使用してください。私はこれが開発のいくつかの側面をより簡単にすると思います。

おすすめ記事