无法在 Mac 中删除目录

kam*_*mbi 3 permissions file-permissions macos

我们有一个 App.component 包,其中有一个“Contents”目录,具有以下权限:

 drwxrwxrwx  4 root  wheel  136 Mar 18 15:05 Contents
Run Code Online (Sandbox Code Playgroud)

当我尝试使用删除此目录时

rm -rf Contents
Run Code Online (Sandbox Code Playgroud)

它失败的原因

rm: Contents//MacOS/APP: Permission denied
rm: Contents//MacOS: Directory not empty
rm: Contents//Resources/App.rsrc: Permission denied
rm: Contents//Resources: Directory not empty
rm: Contents/: Permission denied
Run Code Online (Sandbox Code Playgroud)

lsof 显示没有进程正在使用此包并运行 stat Contents/Resources/App.rsrc 输出:

234881026 3691189 -rw-r--r-- 1 root wheel 0 733 "Mar 18 16:10:13 2012" "Mar  8 17:00:18 2012" "Mar 18 15:04:39 2012" "Mar  8 17:00:18 2012" 4096 8 0 Contents/Resources/App.rsrc
Run Code Online (Sandbox Code Playgroud)

我们确实有权删除“内容”目录,为什么它仍然失败?

编辑:如果我将包从 /Library/Audio/Plug-Ins/Component 移动到 ~/tmp/ 那么它会毫无问题地删除文件夹

谢谢

Ded*_*tos 7

该目录归 拥有root,因此您需要超级用户权限才能删除它。尝试,

sudo rm -rf Contents
Run Code Online (Sandbox Code Playgroud)

这将在执行前询问您的密码。这还将在命令提示符下为您提供所有命令的临时超级用户权限,因此请小心后续命令。

事实上,如果您不习惯这样做,我建议首先将目录移动到垃圾箱,直到您确定捆绑包中不需要任何东西:

sudo mv Contents $HOME/.Trash/
Run Code Online (Sandbox Code Playgroud)