kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu フォルダー構造 その10 - XDG Base Directory Specificationについて

XDG Base Directory Specification

  「XDG Base Directory Specification」はデスクトップ環境における標準的なフォルダー構造を規定した仕様です。
  「XDG Base Directory Specification」仕様を見ると、Ubuntuのフォルダー構造の一部が見えてきます。

  Ubuntu 12.10のリリースノートを見ると、GNOME 3.6を採用していることが分かります。
  また、GNOME 3.6のリリースノートを見ると、XDG Base Directory Specificationに準拠したことが分かります。

  XDG Base Directory Specificationの目的

    例えば各アプリは、ユーザー固有の設定ファイルや各データをユーザーのホームフォルダー直下に隠しファイル(フォルダー)として保存することが多く、以下のように煩雑な状況になっています。


    また「~/.fonts」や「~/.icons」などもユーザーのホームフォルダー直下に作成され、様々な種類のデータが混在した状態になっています。

    標準的な仕様を設けることで一貫性のある方法を提供し、このような状況を整理しようというのが、「XDG Base Directory Specification」の目的です。

  対応状況

    アプリの対応状況はバラバラで、まだ足並みは揃っていません。
    「XDG Base Directory Specification」は、各々のアプリがこの仕様に対応する必要があります。
    多くのGNOME標準アプリは「XDG Base Directory Specification」に対応しています。

    Ubuntu 12.04ではこの仕様に関する記述が見つかりませんでしたが、多くのGNOME標準アプリが対応しているようです。

    Ubuntu12.04/Ubuntu 12.10共に似たような状況です。
    今後この仕様に準じた実装になっていくでしょう。

  環境変数

    「XDG Base Directory Specification」では環境変数にフォルダーパスを指定することで、任意のフォルダーを指定できるようになっています。
    環境変数を設定しなかった場合は、デフォルトのフォルダーパスが利用されます。

XDG Base Directory Specificationのフォルダー

  「XDG Base Directory Specification」が規定するフォルダーです。

  $XDG_DATA_HOME

    アプリのデータを置くフォルダーのパスです。
    デフォルトでは「~/.local/share」がパスになります。
    パスから分かるようにユーザー固有のデータです。

    アプリのデータは、テーマファイルやサウンドファイル等のデータが該当します。
    ゴミ箱内のファイルもこのフォルダー内に置かれます。
    隠しフォルダーですので、ユーザーが作成するドキュメント等はここに含まれません。


    このフォルダーの構造は、「/usr/share」と似たようなフォルダー構造になります。
    「/usr/share」のユーザー固有版といったところでしょうか。
    直接アプリのデータを変更する場合を除いて、ユーザーが直接このフォルダー内にアクセスすることはありません。

    Ubuntuでは「~/.local/share」がパスになります。

  $XDG_CONFIG_HOME

    アプリの設定ファイルを保存するフォルダーです。
    デフォルトでは「~/.config」がパスになります。
    パスから分かるようにユーザー固有のデータです。


    Ubuntuでは「~/.config」がパスになります。

  $XDG_DATA_DIRS

    「$XDG_DATA_HOME」に加え、アプリのデータを検索するフォルダーのパスリストが指定されます。
    各パスは「:」で区切られます
    デフォルトでは「/usr/local/share/:/usr/share/」がパスリストになります。

    このパスリストはアプリのデータを検索するパスの順番も兼ねています。
    従ってアプリのデータを検索する順番は、「$XDG_DATA_HOME」:「$XDG_DATA_DIRS」ということになり、ユーザー固有のアプリのデータが優先されます。

    Ubuntuでは「/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/」がパスリストになります。

  $XDG_CONFIG_DIRS

    「$XDG_CONFIG_HOME」に加え、アプリの設定ファイルを検索するフォルダーのパスリストが指定されます。
    各パスは「:」で区切られます
    デフォルトでは「/etc/xdg」がパスリストになります。

    このパスリストはアプリが設定ファイルを検索するパスの順番も兼ねています。
    従ってアプリの設定ファイルを検索する順番は、「$XDG_CONFIG_HOME」:「$XDG_CONFIG_DIRS」ということになり、ユーザー固有のアプリの設定が優先されます。

    Ubuntuでは「/etc/xdg/xdg-ubuntu:/etc/xdg」がパスリストになります。

  $XDG_CACHE_HOME

    アプリのキャッシュデータを置くフォルダーのパスです。
    デフォルトでは「~/.cache」がパスになります。
    パスから分かるようにユーザー固有のデータです。


   キャッシュデータですから、削除してもアプリの動作には影響がありません。
    ただしキャッシュデータを削除する場合は、そのユーザーがログインしていない状態で行ったほうが良いでしょう。
    Ubuntuでは「~/.cache」がパスになります。

  $XDG_RUNTIME_DIR

    アプリが実行時に生成するファイルを置くフォルダーのパスです。
    Ubuntu 12.04では定義されておらず、「/tmp」が使われているようです。
    Ubuntu 12.10では「/run/user/ユーザー名」がパスになります。
    アプリが実行時に生成するファイルは、ソケットやパイプ等が該当します。


    ユーザーのホームフォルダ以下に設定されることはありませんが、ユーザーごとにフォルダーが別れており、そのユーザー専用のファイルになります。


フォルダー構造
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その74 - Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象
    Qt6 で構築されたアプリがクラッシュする現象 Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象が報告されています。
  • Ubuntu 24.04 その104 - Ubuntu 26.04 LTS へアップグレードするには・アップグレードの注意事項
    Ubuntu 26.04 LTS へアップグレードするには 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Ubuntu 26.04 LTS へアップグレードできます。
  • Ubuntu 24.04 その103 - Ubuntu 26.04 LTS へアップグレード可能に・2年分の変化が一気にやってくる
    Ubuntu 26.04 LTS へアップグレード可能に 2026年9月29日、Ubuntu 24.04 LTS から Ubuntu 26.04 LTS へアップグレード可能になりました。
  • Ubuntu 26.10 その35 - RISC-V 向け Ubuntu Desktop 登場
    RISC-V 向け Ubuntu Desktop 登場 Ubuntu Desktop 26.10 では、RISC-V 向けデスクトップイメージがリリースされます。
  • Ubuntu 26.10 その33 - Ubuntu 26.10 β版がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 β版がリリースされました 2026年10月1日、Ubuntu 26.10 β版 がリリースされました。
  • Ubuntu 26.10 その34 - Ubuntu と Rust に対する取り組み(2026年10月)
    Ubuntu と Rust に対する取り組み 2026年10月1日、Ubuntu と Rust に対する取り組みが以下で紹介されました。
  • Linux その440 - uutils coreutils 0.11.0 でコマンド実行時のエラーメッセージを大幅に改良
    コマンド実行時のエラーメッセージを大幅に改良 uutils coreutils 0.11.0 で、コマンド実行時のエラーメッセージが大幅に改良されました。
  • Ubuntu 26.10 その32 - Snapdragon X2 に対応した Ubuntu 26.10 実験版登場
    Snapdragon X2 に対応した Ubuntu 26.10 実験版登場 2026年9月29日、Snapdragon X2 に対応した Ubuntu 26.10 実験版が登場しました。
  • Linux その438 - GNOME 向けアプリとアップデートの紹介・リモートデスクトップクライアントアプリやファイルアーカイバーなど
    GNOME 向けアプリとアップデートの紹介 GNOME 向けアプリとアップデートの紹介です。
  • Linux その443 - Devpack for Rust 登場・Rust の開発環境を簡単に構築するツール
    Devpack for Rust 登場 2026年10月5日、Devpack for Rust が登場しました。
記事のピックアップ
オプション