当我列出系统上 bin 文件夹的内容时,我通常只看到可执行文件。某些可执行文件需要额外的文件(例如数据和配置文件)才能运行。是否存在存储这些文件以便可执行文件找到它们的标准系统位置?
答案1
您在这个问题中没有提到您的操作系统,但我在上一个问题中看到您使用的是基于 BSD 的 macOS。然而,由于许多应用程序被设计为在 Linux 和 BSD 上运行相同,因此答案通常是相同的。
总体来说,配置和数据可以几乎可以存储在任何地方,但这将是一个坏主意,因此按照惯例,有一些标准:
系统范围的配置文件存储
/etc
在文件系统层次结构标准。另请参阅OS X、Linux 和 FreeBSD 之间的 FHS 差异,但 Linux 和 BSD 都完全同意/etc
(以及 FHS 的大部分其余部分,据我所知)。直到最近,用户配置的定义还比较不确定,XDG 基目录规范。遵循该规范的应用程序会将配置存储在变量指定的目录中
$XDG_CONFIG_HOME
,或者$HOME/.config
以其他方式存储。再说一次,那是相对最近的事情。我还记得在另一个问题中,您正在使用 Fish shell,它是遵循此约定的应用程序之一。
附加数据可能存储在多个位置,但 FHS 将“与体系结构无关的数据”(例如 Fish 的内置函数)定义为位于
/usr/share
.然后是
/var
,它保存“可变数据文件”,例如日志文件、邮件线轴等。
我可能错过了一些常见的候选者,并且我故意跳过了库,它们是代码而不是“配置和数据”。但请浏览 FHS 和 XDG 基本目录规范以获取更多信息。