我想请问下大家:sudo chown -R $(whoami) $(brew --prefix)/* 知道这句命令是有什么作用的吗?

当我输入了 sudo chown -R $(whoami) $(brew --prefix)/* 这句命令后,系统更新软件就提示权限被拒绝,重启电脑就卡在了进度条那里,一直进入不了系统?

发布日期 2018年6月3日 上午12:41

回复
问题被标记为 排名最靠前的回复

发布日期 2018年6月3日 上午9:29

这个命令主要是将homebrew软件目录及其所有子目录和文件的拥有者改为当前用户。


将这个命令行拆开来看:

  • $(whoami) 返回的是当前用户的用户名,比如 tony
  • 最后的部分是返回homebrew安装目录,默认的是/usr/local
    问题是,如果你没有安装homebrew,那么$(brew --prefix)返回的就是“-bash: brew: command not found”,而$(brew --prefix)/*将会是被翻译为包含系统根(/)目录。


所以,如果没有安装brew,或者环境中的PATH变量没有包括brew,那么最后的部分就会出错,就如同执行了下面的命令: “sudo chown -R tony /*”,所以你的系统会出问题。


现在来说,最好是利用macOS的网络启动后再覆盖安装来修复了,如果还不行就只能备份数据后抹盘重装了


最后一点说明,这个命令的问题不仅仅是brew有没有安装这一点,对于个人Mac用户没问题,但是要是多用户就要考虑更多一些。

回复量: 2
问题被标记为 排名最靠前的回复

2018年6月3日 上午9:29 回应 tianjianluo

这个命令主要是将homebrew软件目录及其所有子目录和文件的拥有者改为当前用户。


将这个命令行拆开来看:

  • $(whoami) 返回的是当前用户的用户名,比如 tony
  • 最后的部分是返回homebrew安装目录,默认的是/usr/local
    问题是,如果你没有安装homebrew,那么$(brew --prefix)返回的就是“-bash: brew: command not found”,而$(brew --prefix)/*将会是被翻译为包含系统根(/)目录。


所以,如果没有安装brew,或者环境中的PATH变量没有包括brew,那么最后的部分就会出错,就如同执行了下面的命令: “sudo chown -R tony /*”,所以你的系统会出问题。


现在来说,最好是利用macOS的网络启动后再覆盖安装来修复了,如果还不行就只能备份数据后抹盘重装了


最后一点说明,这个命令的问题不仅仅是brew有没有安装这一点,对于个人Mac用户没问题,但是要是多用户就要考虑更多一些。

这个主题已被系统或社区团队关闭。 你可以为你认为有帮助的任何帖子投票,也可以在社区中搜索其他答案。

我想请问下大家:sudo chown -R $(whoami) $(brew --prefix)/* 知道这句命令是有什么作用的吗?

欢迎来到 Apple 支持社区
Apple 客户在其产品方面互相帮助的论坛。使用您的 Apple 帐户开始畅游其中吧!!