XDG Base Directory
Linuxで~/配下のどこに設定ファイルとかキャッシュファイルを置くかを決めている仕様
"XDG" は "X Desktop Group" の省略
仕様: XDG Base Directory Specification
設定場所の種類は大体以下
設定・関数定義ファイルの配置場所
キャッシュの配置場所
ユーザー固有の状態を保存するための場所
XDG_CONFIG_HOME
ユーザー個別の設定が書き込まれるディレクトリ (/etc と類似)。
デフォルトは $HOME/.config
XDG_CACHE_HOME
ユーザー個別の重要でない (キャッシュ) データが書き込まれるディレクトリ (/var/cache と類似)。
デフォルトは $HOME/.cache
XDG_DATA_HOME
ユーザー個別のデータファイルが書き込まれるディレクトリ (/usr/share と類似)。
デフォルトは $HOME/.local/share
XDG_RUNTIME_DIR
ソケットや名前付きパイプなどのような必須でないユーザー個別のデータファイルに使われる
デフォルト値は必ずしも設定する必要はありません。設定されていない場合は警告が表示されます。
ディレクトリの所有者がユーザーでアクセスモードが 0700 である必要があります。
OS の標準機能だけで動作するファイルシステムを使用します。
ローカルファイルシステム上に存在する必要があります。
定期的にファイルが消去される可能性があります。
永続的に保持したい場合は6時間毎に変更を加えるかスティッキービットを設定します。
ユーザーがログインしている値だけ存在します。
tmpfs でマウントされることもあるので巨大なファイルは保存できません。
システムディレクトリ
XDG_DATA_DIRS
: でディレクトリを区切ります (PATH と類似)。
デフォルトは /usr/local/share:/usr/share
XDG_CONFIG_DIRS
: でディレクトリを区切ります (PATH と類似)。
デフォルトは /etc/xdg
XDG_STATE_HOME
ユーザー固有の状態ファイルを保存する必要があるベースディレクトリを定義
下記の物が含まれる場合がある
行動履歴(ログ、履歴、最近使用したファイル、…)
再起動時に再利用できるアプリケーションの現在の状態(表示状態、レイアウト、開いたファイル、アンドゥ履歴など)
$XDG_STATE_HOMEが設定されていないか空の場合 は、$HOME/.local/stateに等しいデフォルトを 使用する必要があります。
確認用
Q. XDG Base Directory
Q. XDG_CONFIG_HOME
Q. XDG_CACHE_HOME
Q. XDG_DATA_HOME
Q. XDG_RUNTIME_DIR
Q. XDG_DATA_DIRS
Q. XDG_CONFIG_DIRS
Q. XDG_STATE_HOME
参考
XDG Base Directory support - ArchWiki
sindresorhus/xdg-basedir: Get XDG Base Directory paths
Linuxの基本ディレクト構成などのルールとglib(glibmm),Qtの基本ディレクトリーの取得関数 - retireSakiの日記
Ubuntu フォルダー構造 その10 - XDG Base Directory Specificationについて - kledgeb
関連
#shell #Linux #規格