为什么不能在/ bin中创建链接?

时间:2018-11-12 12:07:34

标签: bash macos shebang macos-mojave

我正在使用MacOs Mojave,我发现env二进制文件位于/usr/bin/env下。现在,我们有了一堆shell脚本(在linux下编写和工作),其中的/bin/env已为shebang行进行了硬编码。

我认为很简单:

cd /bin
sudo ln -s /usr/bin/env env

或者也许

sudo cp /usr/bin/env .

应该可以解决问题,但是我得到了:

  

ln:env:不允许操作

(与cp相同)。

有什么解决方法吗?

1 个答案:

答案 0 :(得分:2)

虽然您可以继续前进,disable System Integrity Protection,但我不建议这样做。

相反,请更改您的shebang以使用/usr/bin/env;这就是env所属的地方。

显然,某些Linux发行版在env/bin中都包含/usr/bin,但有些(包括Debian和可能的派生工具)却没有。 macOS也没有,我敢打赌其他BSD也没有。