XDG 用戶目錄 - Arch Linux 中文维基

跳至內容

# XDG 用戶目錄

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 XDG user directories，最近一次同步於 2026-07-29，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- 環境變量
- 默認應用程式
- XDG 基本目錄
- xdg-menu

譯自 freedesktop.org：

  xdg-user-dirs 是一個幫助管理用戶常用目錄（如桌面文件夾和音樂文件夾）的工具。它還處理這些文件夾名稱的本地化（即翻譯）。

  其工作原理是在登錄階段的早期運行 xdg-user-dirs-update(1) 程序。該程序會讀取一個配置文件和一組默認目錄，然後在用戶的主目錄中創建這些目錄的本地化版本，並在 `$XDG_CONFIG_HOME/user-dirs.dirs`（`XDG_CONFIG_HOME` 默認為 `~/.config`）中設置一個配置文件，供應用程式讀取以找到這些目錄。

大多數文件管理器會使用特殊圖標標識 XDG 用戶目錄。

## 安裝

安裝 xdg-user-dirs包。

注意：某些桌面環境可能已默認安裝，例如 GNOME。

## 創建默認目錄

可以用以下命令在 `$HOME` 下創建一整套默認的經本地化的用戶目錄：

    $ xdg-user-dirs-update

提示：可以使用 `LC_ALL=C.UTF-8 xdg-user-dirs-update --force` 命令強制創建英文命名的目錄。

運行後該命令還會自動地：

- 創建一個本地的 `~/.config/user-dirs.dirs` 配置文件：應用程式通過他來查找使用特定帳號指定的用戶目錄。
- 創建一個本地的 `~/.config/user-dirs.locale` 配置文件：根據使用的 locale 指定語言。

用戶服務 `xdg-user-dirs.service` 也將默認安裝並啟用，以便在每次登錄會話開始時運行此命令，保持您的目錄是最新的。

## 創建自定義目錄

本地 `~/.config/user-dirs.dirs` 和全局 `/etc/xdg/user-dirs.defaults` 配置文件使用以下環境變量格式指向用戶目錄：`XDG_DIRNAME_DIR="$HOME/directory_name"`。一個示例配置文件可能如下所示（這些都是默認目錄）：

    ~/.config/user-dirs.dirs

    XDG_DESKTOP_DIR="$HOME/桌面"
    XDG_DOCUMENTS_DIR="$HOME/文檔"
    XDG_DOWNLOAD_DIR="$HOME/下載"
    XDG_MUSIC_DIR="$HOME/音樂"
    XDG_PICTURES_DIR="$HOME/圖片"
    XDG_PROJECTS_DIR="$HOME/項目"
    XDG_PUBLICSHARE_DIR="$HOME/公共"
    XDG_TEMPLATES_DIR="$HOME/模板"
    XDG_VIDEOS_DIR="$HOME/視頻"

因為 xdg-user-dirs包 會參照本地配置文件來了解正確的用戶目錄，所以可以自定義。比如若將 `~/.config/user-dirs.dirs` 下 `XDG_DOWNLOAD_DIR` 變量設為了 `$HOME/Internet`，那麼任何參照了該變量的程序都會改用這個目錄。

注意：和其他的配置文件一樣，本地設定覆蓋全局設定。另外自定義的目錄要自己創建。

或者也可以用命令行修改默認目錄。下列命令會產生和上面一樣的效果：

    $ xdg-user-dirs-update --set DOWNLOAD ~/Internet

## 查詢配置好的目錄

一旦設置完成，任何用戶目錄都可以通過 xdg-user-dirs包 查看。例如，以下命令將顯示 `Templates` 目錄的位置，該目錄當然對應於本地配置文件中的 `XDG_TEMPLATES_DIR` 變量：

    $ xdg-user-dir TEMPLATES

警告：`xdg-user-dir` 不應從未經檢查的輸入中獲取其參數，因為它會將參數直接傳遞給 `eval`，而不進行任何有效性檢查，代碼行如下：

    eval echo \${XDG_${1}_DIR:-$HOME}

這意味著 `xdg-user-dir` 會從未經清理的輸入中執行任意代碼。除非上游修復了這個不安全的實現，否則 `xdg-user-dir` 應僅在使用硬編碼或經過嚴格審核的參數時使用。
分類：​

- Freedesktop.org

XDG 用戶目錄
新增話題