มีเอกสารอย่างเป็นทางการในไดเรกทอรีเช่น ~ / .config และ ~ / .cache หรือไม่


13

ฉันเห็นไดเรกทอรีเหล่านี้ถูกใช้งานโดยแอพพลิเคชั่นมากมายและตอนนี้กำลังพิจารณาใช้ไดเรกทอรีเหล่านี้สำหรับแอปของฉัน ฉันจะรู้ได้อย่างไรว่านี่เป็นโฟลเดอร์ที่ได้รับการสนับสนุนอย่างเป็นทางการและไม่ใช่แค่ตำแหน่งของเดือนสำหรับแคช / การกำหนดค่าต่อผู้ใช้

ฉันได้รับ Googling และค้นหาสิ่งที่เป็นทางการจาก Ubuntu แต่ไม่มีประโยชน์บางทีคนอื่นอาจรู้คำค้นหาหรือตำแหน่งของเอกสารนี้ที่เหมาะสม นี่เป็นสิ่งที่ฉันควรยอมรับในฐานะสถานที่ฝึกซ้อมที่ไม่ได้ระบุไว้หรือไม่?


"อาจมีคนอื่นรู้จักคำค้นหาที่เหมาะสม": ฉันไม่แน่ใจว่าเอกสารอย่างเป็นทางการสำหรับการใช้งานของพวกเขา แต่สิ่งเหล่านี้ถือเป็น dotfiles โดยเฉพาะอย่างยิ่งโฟลเดอร์จุดในตัวอย่างเหล่านั้น พวกเขาจะถูกซ่อนไว้โดยค่าเริ่มต้นและมักจะใช้สำหรับการบันทึกการตั้งค่าของผู้ใช้ (~ / .config) และไฟล์ "สนับสนุน" อื่น ๆ เช่นแคช (~ / .cache)
Nmath

2
"เจ้าหน้าที่จาก Ubuntu" ผิดที่ มันถูกกำหนดโดยองค์กร freedesktop ดังนั้น -desktop- ขึ้นอยู่กับ ไม่ใช่แค่ Ubuntu โอ้และนี่คือแนวทาง
Rinzwind

1
@SergiyKolodyazhnyy เป็นที่น่าสนใจเพื่อหารือเกี่ยวกับประวัติความเป็นมาของวิธีการ dotfiles มาเป็น แต่ในทางปฏิบัติ dotfiles / dotfolders ถูกซ่อนอยู่ (มองไม่เห็น) dirโดยค่าเริ่มต้นโดยผู้จัดการไฟล์และคำสั่งเช่นทุบตี ด้วยวิธีนี้ใช่พวกเขาเป็น "ซ่อนเร้น" อย่างแน่นอน การซ่อนไฟล์ด้วยวิธีนี้มีจุดประสงค์ที่ดีเพื่อป้องกันไม่ให้มีการเปลี่ยนแปลง / ลบโดยผู้ใช้โดยไม่ได้ตั้งใจ - นั่นเป็นเหตุผลว่าทำไมไฟล์เหล่านั้นยังคงถูกใช้อย่างแพร่หลาย ฉันยอมรับว่าไม่ควรใช้ dotfiles เพื่อความปลอดภัยในแง่ที่ว่าพวกเขาไม่สามารถค้นหา / อ่าน / แก้ไขได้
Nmath

3
@SergiyKolodyazhnyy วิธีการบางอย่างมีประสิทธิภาพ 100% ด้วยตัวเอง เท่าที่อ้างว่า dotfiles นั้น "ไม่มีทางแอบแฝง" ก็เป็นเท็จได้เนื่องจากเป็นเหตุผลหลักที่ใช้และเป็นประโยชน์เพียงอย่างเดียวสำหรับการเพิ่มสิ่งที่กล่าวมาก่อนหน้า.นี้ พวกเขามองไม่เห็นทั้งหมด? ไม่และพวกเขาไม่ควรจะเป็น พวกเขายังคงสามารถอ่าน / เขียนได้หรือไม่? ใช่และพวกเขาควร ในกรณีส่วนใหญ่จะมองไม่เห็น (ซ่อน) ใช่ - นั่นคือประเด็น
Nmath

1
@Nmath เอาล่ะเราเห็นด้วยที่จะไม่เห็นด้วย :) นอกจากส่วนความคิดเห็นยังไม่มีการพูดคุยกันอย่างกว้างขวาง
Sergiy Kolodyazhnyy

คำตอบ:


19

ใช่มีมาตรฐานเหล่านี้ถูกกำหนดโดย 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/เพื่อเก็บการกำหนดค่าและแคชไว้ที่นั่นเสมอ แต่นั่นอาจไม่ใช่มาตรฐาน ไม่ใช่ "ไม่ดี" - ไม่ใช่แบบมาตรฐาน

ดูสิ่งนี้ด้วย


ehm คุณโพสต์สิ่งนี้ก่อนฉัน? หรือระหว่าง > :)
Rinzwind

@Rinzwind ก่อนคำตอบของคุณ :) ดูที่เส้นเวลาaskubuntu.com/posts/1151791/timeline
Sergiy Kolodyazhnyy

ป่วยให้คุณมีอันนี้: =)
รินซ์วิน

น่ากลัวฉันควรขุดให้ลึกลงไปขอบคุณข้อมูล
แดนนี่ A

POSIX ส่วนใดที่พูดถึงการใช้งานไดเรกทอรี
chepner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.