可执行文件存储在/usr/libexec类 Unix 系统中。FHS 说(部分4.7. /usr/libexec : Binaries run by other programs (optional)":
/usr/libexec包括不打算由用户或 shell 脚本直接执行的内部二进制文件。应用程序可以使用/usr/libexec.
在 Mac OS X 上,启动后立即rootless-init调用的程序launchd存储在/usr/libexec. /usr/libexec当它是可以存储在/usr/bin或 中的独立可执行文件时,为什么要存储在其中/usr/sbin?init和其他不被 shell 脚本直接调用的程序也存储在[/usr]/{bin,sbin}.
nco*_*lan 34
这是一个可支持性问题 - 平台提供商从多年的经验中了解到,如果您PATH默认将二进制文件放入,人们将开始依赖它们的存在,并且将依赖于他们支持的特定参数和选项。
相比之下,如果放入某些内容,/usr/libexec/则明确表明它被视为内部实现细节,并且不正式支持以最终用户身份直接调用它。
无论如何,您仍然可能决定直接访问这些二进制文件,如果未来的升级破坏了您正在使用的私有接口,您将不会得到平台提供商的任何支持或同情。
OS X 不遵循 FHS 标准。它有自己的文件系统层次结构(类似于 FreeBSD 文件系统层次结构)。手册页hier指出-
libexec/ system daemons & system utilities (executed by other programs)