使用 `/etc/paths` 或 `/etc/paths.d` 将项目添加到 macOS Sierra 的 PATH 中?

Bas*_*que 13 osx zsh path etc

从我在各个地方收集到的有关讨论/usr/libexec/path_helper以及所有内容,显然PATH在 macOS Sierra 10.12中将项目添加到环境变量的现代方法是:

  • 编辑/etc/paths文件
  • 添加要从/etc/paths.d目录中读取的文件。

我的问题:

  • 在现代 macOS 上哪个更犹太?
  • 如果更好或更常见的方法是将文件放入paths.d目录中,那么这些文件的名称和内容应该是什么?有什么例子吗?
  • 我正在使用zsh而不是bash. 这有什么区别吗?
  • 这两个选项是 macOS 独有的吗?或者它们是否出现在 BSD 或其他类 Unix 系统中?

bah*_*mat 13

使用/etc/paths.d. 主要原因是/etc/paths将被系统升级修改和/或替换。/etc/paths.d/项目不会。文件通常以模式命名index-source。例如,99-mypaths。路径按顺序附加*。简单地添加/删除文件比以编程方式编辑一个没有错误的幂等文件要容易得多。

macOS 上的默认csh.loginprofilezprofile都加载path_helper.


* 可能是 ASCII 顺序,但也可能是 LOCALE 顺序。