我已經看到許多應用程式正在使用這些目錄,現在我正在考慮將它們用於我的應用程式。我如何知道這是官方支援的資料夾,而不僅僅是每個用戶快取/配置的月份位置?
我一直在尋找 Ubuntu 官方的東西,但沒有成功;也許其他人知道本文檔的正確搜尋字詞或位置。這是我應該接受的未聲明的標準練習地點嗎?
答案1
是的,有一個標準:這些標準由 freedesktop.org 指定,並且是XDG 基目錄規範。
配置規格僅概述了基本要求,但詳細資訊位於基本目錄規格中。除非另有配置,~/.config
和目錄都是預設的:~/.cache
有一組優先排序的基本目錄,應相對於這些目錄搜尋設定檔。這組目錄由環境變數 $XDG_CONFIG_DIRS 定義。
有一個基本目錄相對應寫入使用者特定的非必要(快取)資料。目錄由環境變數 $XDG_CACHE_HOME 定義。
…
$XDG_CONFIG_HOME 定義應儲存使用者特定設定檔的相對基底目錄。如果 $XDG_CONFIG_HOME 未設定或為空,則應使用等於 $HOME/.config 的預設值。
…
$XDG_CACHE_HOME 定義應儲存使用者特定的非必要資料檔案的相對基底目錄。如果 $XDG_CACHE_HOME 未設定或為空,則應使用等於 $HOME/.cache 的預設值。
您可能會注意到這些規範主要規定了資料應儲存在何處、使用哪些環境變數以及以何種方式(桌面中立、高效等),但大多數桌面可以自由地實現其中的「如何」部分。基於 GNOME 的桌面將使用gsettings
與 KDE 使用者可以使用相同的方式kwriteconfig
,但他們都將依賴~/.config
進程中的目錄
問題要點
我如何知道這是官方支援的資料夾,而不僅僅是每個用戶快取/配置的月份位置?
這些目錄出現在官方文件中並且檔案系統層次結構標準還提到了他們。這是官方文檔,因此這些文件夾受到官方支援。
這是我應該接受的未聲明的標準練習地點嗎?
取決於您正在建立的應用程式。該應用程式是否應該根據每個使用者進行配置,或在整個系統中一致工作? FHS 告訴我們,對於系統範圍的東西,我們應該使用/etc
或/usr/local
,但 XDG 目錄應該用於特定於使用者的配置 -~/.cache
和~/.config
.當然,如果應用程式不依賴用戶特定的設置,/var/快取可以用來代替每個使用者目錄。當然,您始終可以使用單一~/.appname.conf
檔案、一個~/.appname.db
或~/.appname/
目錄來保存配置和緩存,但這將是非標準的;不是「壞」——只是不標準。