【问题标题】:Permission denied mv /usr/bin权限被拒绝 mv /usr/bin
【发布时间】:2020-08-30 08:59:10
【问题描述】:

我正在尝试重命名文件,但它不起作用。

仅供参考,我在 /usr/bin

(input) mv python pythonOLD
(output) mv: rename python to pythonOLD: Operation not permitted

当我尝试 sudo 时:

(input) sudo mv python pythonOLD
Password:
(output) mv: rename python to pythonOLD: Operation not permitted

有什么建议吗?

【问题讨论】:

  • 我不是来质疑你的动机,但一般不建议像这样重命名系统文件。您可能会担心的一种情况是现有程序,它们依赖于知道二进制文件的位置,并且像这样重命名它可能会以难以检测的方式破坏不止一件事情。
  • 如果您希望命令“python”引用较新的版本,我可能会建议在您的 .bashrc/.zshrc/.whatever-shell-you-use-rc 中添加类似 alias python="/path/to/desired/python/binary" 的内容,并且在您的日常生活中命令行使用这将使您只需键入“python”即可使用所需的版本。
  • 我不想在声明'python'时使用python3,我想在文件名前使用./时使用它
  • 啊,我明白了。如果你想在使用./filename执行程序时使用python3,那么你需要在filename的顶部放置一个shebang。为此,您可以在顶部插入一个包含#!/path/to/python3 的新行。这将告诉机器使用位于/path/to/python3 的任何二进制文件执行该文件。
  • mppombo5 我已经想出了如何更改我的主要 python 语言,这是我做这一切的主要目标。但是我遇到了一些“错误导入:PycURL lib”的问题。如果你能帮忙的话,我已经发了一篇关于它的帖子。

标签: python bash macos terminal mv


【解决方案1】:

您已标记 macOS,所以我猜您使用的是 Catalina。在 Catalina 上,Apple 将磁盘分为两个分区,一个只读系统分区和一个用户数据可写分区。 Here's an answer with more details. 所以你实际上不能乱用 /usr/bin。

一般推荐的解决方案是不理会系统 python2.7,正如另一位用户所说,将另一个版本的 Python 添加到您前面的路径中。

【讨论】:

  • 其实从 El Capitan 开始,System Integrity Protection 就已经禁止修改 /bin 了。 Catalina 使用的双分区格式只是加强和扩展了这种保护。
  • (对不起,我对编码不太了解)我如何实际更改文件的路径?只需进入 bash_profile 并更改 $PATH?
  • 只需更改路径即可,您可以查看如何做到这一点。但是我使用Brew安装了python3,它以python3的身份存在于路径上,然后使用它。
猜你喜欢
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
相关资源
最近更新 更多