编程技术分享平台

网站首页 > 技术教程 正文

Linux 基本目录规范(linux系统的目录结构和常用目录)

xnh888 2025-06-12 18:32:39 技术教程 4 ℃ 0 评论


XDG Base Directory Specification

该规范定义了一套指向应用程序的环境变量,这些变量指明的就是这些程序应该存储的基准目录。
而变量的具体值取决于用户,若用户未指定,将由程序本身指向一个默认目录,该默认目录也应该遵从标准,而不是用户主目录。

参考:

https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

https://wiki.archlinux.org/title/XDG_Base_Directory

基本

XDG基本目录规范基于以下概念:

  • 有一个用于写入特定用户数据文件的基本目录。$XDG_DATA_HOME。 $HOME/.local/share
  • 有一个用于写入特定用户的配置文件基本目录。$XDG_CONFIG_HOME。 $HOME/.confi
  • 有一组首选的基本数据目录。$XDG_DATA_DIRS。 /usr/local/share/:/usr/share/
  • 有一组首选的基本配置目录。$XDG_CONFIG_DIRS。 /etc/xdg
  • 有一个用于写入用户特定的非必要(缓存)数据的基本目录。$XDG_CACHE_HOME。 $HOME/.cache
  • 有一个用户放置特定于用户的运行时文件和其他文件对象。$XDG_RUNTIME_DIR。


环境变量清单:用户层面变量(User-Level Variables)

$XDG_DATA_HOME

定义了应存储用户特定的数据文件的基准目录。默认值是

$HOME/.local/share

使用场景:

  • 用户下载的插件;
  • 程序产生的数据库;
  • 用户输入历史、书签、邮件等。

$XDG_CONFIG_HOME

定义了应存储用户特定的配置文件的基准目录。默认值是

$HOME/.config

使用场景:

  • 用户配置。
  • 一般来说,这个地方可以在程序初始化的时候存储一个默认的配置文件供加载和修改。

$XDG_CACHE_HOME

定义了应存储用户特定的非重要性数据文件的基准目录。默认值是

$HOME/.cache

使用场景:

  • 缓存的缩略图、歌曲文件、视频文件等。
  • 程序应该做到哪怕这个目录被用户删了也能正常运行。

$XDG_RUNTIME_DIR

定义了应存储用户特定的非重要性运行时文件和一些其他文件对象。

使用场景:

  • 套接字 (socket)、命名管道 (named pipes) 等。
  • 该目录必须由用户拥有,并且该用户必须是唯一具有读写访问权限的。 目录的 Unix 访问模式必须是 0700

环境变量清单:系统层面变量(System-Level Variables)

$XDG_CONFIG_DIRS

定义了一套按照偏好顺序的基准目录集,用来搜索除了 $XDG_CONFIG_HOME 目录之外的配置文件。该目录中的文件夹应该用冒号(:)隔开。默认值是

/etc/xdg

使用场景:

  • 可以被用户特定的配置文件所覆盖的系统层面的配置文件。
  • 一般来说,应用程序安装的时候可以加载配置文件到这个目录。

$XDG_DATA_DIRS

$XDG_DATA_DIRS 定义了一套按照偏好顺序的基准目录集,用来搜索除了 $XDG_DATA_HOME 目录之外的数据文件。该目录中的文件夹应该用冒号(:)隔开。默认值是

/usr/local/share/:/usr/share/

使用场景:

  • 可以被所有用户使用的插件或者主题。
  • 一般来说,应用程序安装的时候可以加载插件、主题等文件到这个目录。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表