背景
Unix 惯例和 Linux 文件系统层次结构标准定义了多条路径,进程可以在这些路径下查找特定信息,或使用这些路径写入特定信息。当需要设置用户特定的环境时,作为非 root 用户,大多数这些位置要么无法访问,要么可以读取,但无法写入文件或创建新文件。因此,必须使用替代方案。
原则上,我们可以将用户的主目录视为另一个目录/
;然而,这不是常见的做法。
还有创建目录的习惯$HOME/.my_app
。大多数创建目录的应用程序都将其用于配置,但有些应用程序也将其用于其他类型的数据(Eclipse、Firefox、Thunderbird 就隐藏了大量数据)。但这意味着我们的.something
主目录中可能有几十个甚至几百个目录,这是相当不合适的。
最后,一些应用程序将内容写入$HOME/.local
和也已成为一种常见现象$HOME/.config
,这样不会“弄乱”主目录本身:$HOME/.config
可以看作是/etc
和$HOME.local
的等价物/usr
;因此,非常有用,但是 - 它不包括/var
及其子目录。
实际问题
在用户的主目录下,我们或我们编写的程序应该将系统级程序存储在/var
或 子目录中的数据存储在 的哪里/var
?也就是说:“在系统正常运行期间,内容预计会不断变化,例如日志 [和] 假脱机... 文件”(引用 FHS),以及缓存、非静态数据库、锁定文件、运行文件和日志文件?