为什么我使用 mv 时权限被拒绝,尽管目录权限是正确的?

为什么我使用 mv 时权限被拒绝,尽管目录权限是正确的?

尽管目录所有者设置为我的用户并且用户权限设置为 7,但尝试移动文件夹时,我的权限被拒绝。Musicmv是怎么回事?

(我知道我可以使用 sudo,但我想找出问题所在。这里有股腥味)。 PS:我使用的是 Mac OS X El Capitan。

终端截图

答案1

我正在使用适用于 Linux 的 Windows 子系统。我在另一个 bash 实例中打开了该目录。关闭它让我移动目录。

答案2

请注意,当在文件夹 中a移动b到时c,文件夹权限a决定了您可以执行的操作。

在这种情况下,权限.将是最重要的。

观察到权限比简单的更复杂rwx。您的文件夹末尾music有一个,该文件夹末尾有一个。@.+

  • 用于xattr -h确定@符号的复杂权限。
  • 用于getfacl确定 + 符号的 ACL。

答案3

似乎该目录深处某处至少有 1 个文件没有正确的权限。

所以,我所做的是:

sudo chown -R valmar ./Music
sudo chmod -R 755 ./Music

现在可以了。

答案4

当一组程序在我试图删除的目录中运行时,我遇到了这个问题。为了移动该目录,我必须首先终止该目录中所有正在运行的程序。

在以下命令中,将非常小心关于如何选择程序名称。我使用了以下命令,供参考:

ps aux | grep -i [NAME_OF_ANNOYING_PROGRAM] | grep -v grep
# make sure that you are only about to kill the programs you want to kill

ps aux | grep -i [NAME_OF_ANNOYING_PROGRAM] | grep -v grep | awk '{print $2}' | sudo xargs kill -9
sudo mv /usr/local/[DIR_FOR_ANNOYING_PROGRAM] /usr/local/[DIR_FOR_ANNOYING_PROGRAM]2

一般程序是:

  1. 杀死从相关目录运行的所有程序
  2. 尝试重命名目录
  3. 如果失败,强制杀死(kill -9有很多警告) 目录中的所有程序
  4. 尝试重命名目录
  5. 如果失败,请查看该程序是否再次运行,即它已被从不同目录运行的某个守护程序重新启动
  6. 强制杀死重新启动烦人程序的守护程序
  7. 强制杀死烦人的程序
  8. 重命名目录
  9. 利润

相关内容