当编写名为“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从任何地方使用符号链接。我想这会使开发的某些方面更容易。

相关内容