2016-04-23 58 views
1

比方說,我正在寫一個程序,我希望它遵循XDG基本目錄規範的地方把它的文件(應用程序foo使用$XDG_CONFIG_HOME/foo作爲配置文件的目錄,如果XDG_CONFIG_HOME設置和非空,或~/.config/foo或者如果主目錄甚至無法解析,則會出現錯誤)。程序應該創建XDG文件夾嗎?

是否存在正確/指定的行爲,例如XDG_CONFIG_HOME已設置且非空白,但該目錄不存在?或者沒有這樣的變數,並且~/.config不存在?預計我的程序會嘗試創建它嗎?或者是該文件夾不存在被認爲是環境/系統部分的錯誤,並且我的程序應該避免做任何事情(只保留一個錯誤)?

注意:我不是在問我是否應該創建~/.config/foo--顯然這是肯定的;我問我是否應該創建~/.config本身,如果它不存在。 (更加迂腐:顯然有些程序應該創建它們 - 問題是它是否完全是系統/桌面/用戶的工作,或者如果任何程序嘗試創建相關文件夾(如果它們不存在) ?)

我試過閱讀XDG Base Directory Specification,其中說當試圖編寫它的文件時,程序可能會創建必需的目錄,但是目前還不清楚這是否僅指應用程序的特定/「個人」子目錄XDG基本文件夾,或者這是爲了XDG基本文件夾本身。

P.S.通常我對使用什麼標籤有一個好的想法,但在這裏我非常不確定:請編輯這篇文章或者提出改進建議以給它適當的標籤。

回答

0

根據我對問題的推理,我發佈了自己非常具有試探性的/推測性的答案,但我真的很喜歡一個更權威的/權威性的答案。

我認爲,是有幫助的,而不是做的用戶是什麼可能都問錯誤一般的格言是考慮一件好事:如果我這樣做XDG_DATA_HOME=~.l/ocal/share,我可能也正是這樣想的,但它很多更可能是我犯了一個錯字。從邏輯上講,最有幫助而且干擾最小的事情是在這種情況下報告缺少所請求的XDG目錄。

此外,據我瞭解,規範的目標是部分減少主目錄混亂,所以它似乎適得其反,每次都會故意做相當於mkdir -p

相關問題