实际上,有两个问题:
/etc
中的某个位置。对于普通的应用程序或/etc
.发布于 2009-06-21 15:11:03
通常,系统/全局配置存储在/etc.
)的隐藏目录存储
一般来说,命令行选项将覆盖环境变量,环境变量将覆盖用户默认值,而用户默认值将覆盖系统默认值。
发布于 2009-06-21 17:10:43
您应该将您的应用程序坚持到上。这里的大多数答案要么已经过时,要么是错误的。
您的应用程序应将数据和配置文件存储到以下环境变量所指向的目录中,并从这些目录中加载数据和配置文件:
$XDG_DATA_HOME
(默认值: files.$XDG_CONFIG_HOME
):用户特定的数据files.$XDG_DATA_DIRS
(默认值:"$HOME/.config"
):用户特定的配置directories.$XDG_CONFIG_DIRS
(默认值:"/usr/local/share/:/usr/share/"
):优先排序的系统数据files.$XDG_CONFIG_HOME
集(默认值:"$HOME/.local/share"
):优先排序的系统配置"$HOME/.local/share"
集(默认值:"$HOME/.config"
)(默认值:"$HOME/.cache"
):用户特定的非必要数据文件。您应该首先确定问题文件是否为:
$XDG_CONFIG_HOME:$XDG_CONFIG_DIRS
);$XDG_DATA_HOME:$XDG_DATA_DIRS
);或$XDG_CACHE_HOME
).建议您的应用程序将其文件放在上述目录的子目录中。通常是像$XDG_DATA_DIRS/<application>/filename
或$XDG_DATA_DIRS/<vendor>/<application>/filename
这样的东西。
加载时,首先尝试从特定于用户的目录($XDG_*_HOME
)加载文件,如果加载失败,则从系统目录($XDG_*_DIRS
)加载文件。保存时,仅保存到用户特定的目录(因为用户可能没有系统目录的写入权限)。
有关更多面向用户的其他目录,请参阅。它定义了桌面、下载、文档、视频等的目录。
发布于 2009-06-21 16:03:51
更新的应用程序
遵循XDG Base Directory Specification通常~/.config/yourapp/*
可以是INF、JSON、YML或任何你喜欢的格式,以及任何文件……对于~/.config/yourorg/yourapp/*
,yourapp
应该与您的可执行文件名称匹配,或者使用您的组织/公司/用户名/句柄进行命名
较旧的应用程序
每个用户的配置,通常就在您的主目录中...
单个file
~/.yourapp/
的~/.yourapp
文件用于多个文件+数据,通常采用~/.yourapp/config格式
全局配置一般在/etc/appname
文件或/etc/appname/
目录下。
全球应用数据:/var/lib/yourapp/
缓存数据:/var/cache/
日志数据:/var/log/yourapp/
一些来自 的其他信息
Linux/其他类Unix系统的目录结构和目录详细信息。
在Windows中,几乎所有的程序都将它们的文件(所有文件)安装在名为“Program files”的目录中,这在Linux中并非如此。目录系统对所有已安装的文件进行分类。所有配置文件都在/etc
中,所有二进制文件都在/bin
、/usr/bin
或/usr/local/bin
中。下面是整个目录结构及其包含的内容:
/
-构成文件系统基础的根目录。所有文件和目录在逻辑上都包含在根目录中,而不考虑它们的物理位置。
/bin
-包含作为Linux操作系统一部分的可执行程序。许多Linux命令,例如cat、cp、ls、more和tar,都位于/bin
中。
/boot
-包含LILO和GRUB引导管理器所需的Linux内核和其他文件。
/dev
-包含所有设备文件。Linux将每个设备视为一个特殊的文件。所有这样的文件都位于/dev
中。
/etc
-在/etc/rc.d
子目录中包含大多数系统配置文件和初始化脚本。
/home
-主目录是用户主目录的父目录。
/lib
-包含库文件,包括引导系统所需的可加载驱动程序模块。
/lost+found
-丢失文件的目录。每个磁盘分区都有一个lost+found目录。
/media
-在可移动介质上挂载文件系统的目录,如光驱、软盘和Zip驱动器。
/mnt
-临时装载的文件系统的目录。
/opt
-可选软件包在此处复制/安装文件。
/proc
-虚拟文件系统中的特殊目录。它包含有关Linux系统的各个方面的信息。
/root
-根用户的主目录。
/sbin
-包含管理二进制文件。诸如mount、shutdown、umount等命令驻留在此处。
/srv
-包含服务(超文本传输协议、文件传输协议等)的数据由系统提供。
/sys
-一个特殊的目录,其中包含有关设备的信息,如Linux内核所见。
/tmp
-临时目录,可用作临时目录(临时文件存储)。每次系统启动时,此目录的内容都会被清除。
/usr
-包含许多程序的子目录,如X Window System。
/usr/bin
-包含许多Linux命令的可执行文件。它不是核心Linux操作系统的一部分。
/usr/include
-包含C和C++编程语言的头文件
/usr/lib
-包含用于C和C++编程语言的库。
/usr/local
-包含本地文件。它的目录与/usr包含的目录相似。
/usr/sbin
-包含管理命令。
/usr/share
-包含共享的文件,如默认配置文件、图像、文档等。
/usr/src
-包含Linux内核的源代码。
/var
-包含各种系统文件,如日志、邮件目录、打印假脱机等,这些文件的数量和大小往往会随着时间的推移而变化。
/var/cache
-应用程序缓存数据的存储区。
/var/lib
-包含与应用程序的当前状态相关的信息。程序在运行时会对此进行修改。
/var/lock
-包含由应用程序检查的锁定文件,以便一个资源只能由一个应用程序使用。
/var/log
-包含不同应用程序的日志文件。
/var/mail
-包含用户的电子邮件。
/var/opt
-包含存储在/opt目录中的包的变量数据。
/var/run
-包含自系统启动以来描述系统的数据。
/var/spool
-包含等待某种处理的数据。
/var/tmp
-包含在系统重新启动之间保留的临时文件。
https://stackoverflow.com/questions/1024114
复制相似问题