2010-07-30 89 views
17

我打算开发一个跨平台的脚本。在Linux和其他操作系统上,它将在XDG_DATA_HOME中存储配置XDG_CONFIG_HOME和数据文件(特别是下载的插件)。在Windows上,它将使用APPDATA(除非有人有更好的主意)。但是,在Mac OS X上做什么是正确的?Mac OS X上XDG_CONFIG_HOME和XDG_DATA_HOME的等价物?

在我第一眼看过便利的Macbook的~/Library目录时,我看到了PreferencesApplication Support文件夹。我原本打算使用这些,但Preferences似乎只包含反向域名如com.apple.foo.bar.baz.plist的plists,并且Application Support中的每个文件夹对应于/Applications中的一个包,因此我不确定系统对文件的反应如何不符合其标准。将它们直接存储在~/Library可能是一个选项,但如果有更好的地方,我不想用流氓myscript.conf文件污染它。

我应该在哪里存储这些文件? (请不要只说~/.myscript,我知道这是Unix的传统,但它让我很难看到主目录中的随机点文件。)

+0

如果它是一个命令行工具,或者由开发人员使用,*请请请*只需使用XDG目录。或者至少在存在的情况下使用它们,即使你回退到'〜/ Library'而不是'〜/ .config'等。 – OJFord 2016-10-08 21:02:17

回答

4

我会用~/Library/Application Support/script_name/Application Support中的子目录通常由各种应用程序使用,包括Apple自己的软件。但它不是由操作系统强制执行的,也不是与/Applications内的应用程序绑定的。所以你完全可以自由地创建你自己的目录。

有关一般OS X的目录结构,请参见this Apple document

+0

好的,很酷。这是否适合配置,或只是数据文件? – LeafStorm 2010-07-31 17:34:30

+0

两者都很好。我在答案中加入了一份官方文件作为参考。 – Yuji 2010-08-01 17:55:50

+1

链接看起来已经过时了,也许是这个:https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2 -SW1 – 2017-05-26 12:37:40

24

的各种路径的XDG基本目录规范相比苹果的文档接近到以下位置:

  • XDG_CONFIG_HOME▶︎~/Library/Preferences/
  • XDG_DATA_HOME▶︎~/Library/
  • XDG_CACHE_HOME▶︎~/Library/Caches/

Mapping XDG Base在Mac OS X为 “我的应用” 目录规格位置看起来是这样的:

  • XDG_CONFIG_HOME▶︎~/Library/Preferences/name.often.with.domain.myapp.plist
  • XDG_DATA_HOME▶︎~/Library/My App/
  • XDG_CACHE_HOME▶︎~/Library/Caches/My App/

这些映射似乎非常合理,但他们不是确切的。某些种类的缓存或数据可能适用于~/Library/Application Support/My App,而其他缓存或数据可能最适合于临时位置或应用程序包。所有这些都是惯例,使用最佳XDG_位置的原因同样适用于在Mac OS X系统上使用最佳位置。

您在~/.myscript的烦恼符合Apple的准则:“不要污染用户空间”。

参考文献:

+3

XDG _ * _ HOME不是应用程序特定的 - 您的示例可能应该是“XDG_CONFIG_HOME - >〜/ Library/Preferences /”,“XDG_DATA_HOME - >〜/ Library /”,以及“XDG_CACHE_HOME - >〜/ Library/Caches /”。 (您的帖子虽然有帮助,但我只是为后人提供了这个小修改) – 2013-07-22 14:38:45

+0

示例是“我的应用程序”的位置。我已经添加了一个通用映射到显示非应用程序特定位置的答案。谢谢。 – jla 2013-07-26 18:16:26

+0

链接看起来已经过时了,是这样的:https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672 -CH2-SW1 – 2017-05-26 12:37:24