macos - 我应该在哪里放置 bash 脚本的模板文件夹?

标签 macos bash unix

我在 OS-X(Mavericks,如果重要的话)上,我正在制作一个 bash 脚本,它将使用名为"template"的文件夹中的资源。我想弄清楚我应该把它放在哪里(模板文件夹)。我想这样做,这样用户在安装它时就不需要修改他们的路径,所以我不想像终端 mysql 命令那样做(它位于 /usr/local/mysql/bin)。我真的希望能够将它们放入 usr/bin,但我不知道将文件夹放在那里是否“礼貌”(我在那里没有看到任何东西)。

现在我倾向于将脚本放在 usr/bin 中,并将模板放在 usr/lib 中。这种事情通常是这样做的,还是有其他方法?假设有一个约定,我想遵循一个约定。我还希望它适用于尽可能多的 Unix 平台(我想放在 bash 脚本所在的目录中,该目录在尽可能多的 Unix 平台上保持一致)。谢谢。

最佳答案

如果您关注Filesystem Hierarchy Standard (FHS),您的可执行文件位于 /usr/local/bin,而只读模板文件位于 /usr/local/share/YOURAPP/。引用the FHS :

/usr/local/share

The requirements for the contents of this directory are the same as /usr/share. […]

and :

The /usr/share hierarchy is for all read-only architecture independent data files.

(强调)

如果系统管理员要自定义模板文件以在系统范围内生效,那么他们只需进入 /etc/YOURAPP/templates(或类似的东西)。

如果模板文件是基于每个用户定制的,那么模板的修改副本(从/usr/local/share/YOURAPP/templates复制)需要保存在用户的目录,在 $HOME/.config/YOURAPP/templates 或类似的目录下(感谢 technosaurus 的更正)。


您提到要将模板安装在与可执行文件一起的目录中。这不是 UNIX 上的标准方法,至少 FHS 是这样。如果你真的想走这条路,有一种惯例是将你的应用程序安装到 /opt/YOURAPP/,在该文件夹中使用你想要的任何组织。

在所有情况下,将可执行文件直接安装到 /usr/bin 都不是好的做法,因为该目录被认为处于操作系统/发行版的排他控制之下。如果您想在那里安装,可接受的方法是为每个受支持的操作系统/发行版的包管理器创建一个包。

关于macos - 我应该在哪里放置 bash 脚本的模板文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23701262/

相关文章:

git - 具有 MAC 的 Parallels 中的 Visual Studio 不断重新加载项目

macos - 在 OS X 中创建目录硬链接(hard link)的 Unix 命令是什么?

bash - bash 中的 ":"被称为什么?冒号用作传递语句

c++ - 如何在 Unix/Linux 中创建软件包?

c++ - 为什么 CLion 无法在我的 Mac 上编译?

macos - 在 Mac 上的浏览​​器中在编辑器中打开文件

c++ - 静态 C++ 变量 Apple Mach-o 链接器问题

git - 使用 p4merge 作为 git diff 工具

linux - Unix 命令 rmdir 什么时候适合使用?

linux - 从给定的哈希值计算 base64 编码的哈希值?