我编写了一个由多个 bash 脚本组成的基本命令行应用程序。其中之一旨在由计算机的任何用户运行,所以我知道正确的位置是/usr/local/bin/.
其他脚本不应由用户直接运行,而只能由第一个脚本调用。安全性在这里不是问题,我不介意用户是否费力地找到他们的确切路径并从那里执行它们,但我不希望它们位于可以从任何地方调用它们的路径中。
目前我已经把它们都放进去了,/usr/sbin/my_app_name/但我明白我不应该把东西放在那里。但是我应该把这些脚本放在哪里?理想情况下,我只想将my_app_name包含脚本的文件夹移动到正确的位置。
TL; DR:将支持在文件/usr/local/lib/my_app_name和主脚本/usr/local/bin。
当然你会得到很多关于不同地方放东西的建议,因为这种东西没有太多的标准化。我更喜欢将这种类型的文件放在/usr/local/my_app_name/或 中/opt/local/my_app_name,具体取决于您在系统上安装其他用户程序的位置。主程序应该在/usr/local/bin或 中/opt/local/bin。如果辅助脚本不打算单独运行,它们可能不应该与主脚本位于同一位置。但是,如果子公司本身就是可以被其他程序调用的完整模块/库,那么像这样的位置/usr/local/lib可能是合适的。
为了将来参考,请查看文件系统层次结构标准。所提建议/usr/local和/opt(我得到/opt/local来自OSX和MacPorts的)是相似的,但它似乎/opt是更适合你可以从供应商处获得外部包-例如,英特尔数学核心函数库默认情况下,自行安装/opt/intel/mkl。