ใช่มีมาตรฐานเหล่านี้ถูกกำหนดโดย freedesktop.org และเป็นส่วนหนึ่งของข้อมูลจำเพาะ XDG ฐานสารบบ
config-specแสดงเพียงข้อกำหนดพื้นฐาน แต่รายละเอียดอยู่ในข้อมูลจำเพาะของไดเรกทอรีฐาน ~/.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 / cacheสามารถใช้แทนไดเรกทอรีต่อผู้ใช้ แน่นอนว่าคุณสามารถมี~/.appname.conf
ไฟล์เดียว~/.appname.db
หรือไดเรคทอรี~/.appname/
เพื่อเก็บการกำหนดค่าและแคชไว้ที่นั่นเสมอ แต่นั่นอาจไม่ใช่มาตรฐาน ไม่ใช่ "ไม่ดี" - ไม่ใช่แบบมาตรฐาน
ดูสิ่งนี้ด้วย