尝试在 macOS 命令行上“rm -rf”我自己的目录时权限被拒绝

尝试在 macOS 命令行上“rm -rf”我自己的目录时权限被拒绝

我注意到rm -rf我的 macOS BigSur 中有一个奇怪的行为。我创建了一个字体安装目录:

~/code ❯ ls -la                                                         10:06:54
total 16
drwxr-xr-x  21 fredguth  staff   672 Oct 30 08:47 .
drwxr-xr-x+ 71 fredguth  staff  2272 Nov  5 10:07 ..
drwxr-xr-x   7 fredguth  staff   224 Nov  5 09:57 FontPro  <<<<======== This directory
...

我是 user fredguth,目录的所有者。

~/code ❯ whoami                                                  3m 34s 10:21:34
fredguth

我在尝试着rm -rf FontPro

有时候是这样的:

rm: FontPro/tfm/MinionPro-MediumItCapt-osf-l1-ly1--lcdfj.tfm: Permission denied
rm: FontPro/tfm/MinionPro-BoldIt-lf-t2a--base.tfm: Permission denied
...
rm: FontPro/dvips/a_fzbwjk.enc: Permission denied
rm: FontPro/dvips: Directory not empty
rm: FontPro: Directory not empty

我不明白。我用于非空目录,如果不是严格需要,rm -rf我不想使用。sudo

是否有任何 macOS 设置阻止我rm -rf,或者我是否遗漏了其他内容?

答案1

新手错误。关于评论建议:

~/code ❯ ls -ld FontPro/tfm
drwxr-xr-x  8156 root  staff  260992 Oct 26 21:26 FontPro/tfm

我刚刚意识到这个子目录是由 root 拥有的。这就是罪魁祸首。

~/code ❯ sudo chown -R fredguth FontPro                             33s 10:33:20
~/code ❯ ls -ld FontPro/tfm                                             10:33:39
drwxr-xr-x  8156 fredguth  staff  260992 Oct 26 21:26 FontPro/tfm
~/code ❯ rm -rf FontPro                                                 10:33:44
~/code ❯ 

现在工作。

PS @JG7 和 @roaima,如果您发布答案,我可以将您的答案标记为正确的答案。

答案2

我遇到了类似的情况,但该文件夹归我所有。结果我运行了一个 Docker for Mac 容器,该容器使用该文件夹作为绑定安装。停止我的容器允许我删除该文件夹。

> rm -rf The.Folder.In.Question/
rm: The.Folder.In.Question/: Permission denied
> docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                     NAMES
26072a9ee2d7   logtestmicroservice             "dotnet watch"           12 minutes ago   Up 12 minutes   0.0.0.0:55008->8080/tcp   LogTestMicroService_container
bcf515e5792e   logtestmicroservice_generator   "dotnet watch -- run…"   13 minutes ago   Up 13 minutes   0.0.0.0:55007->8080/tcp   LogTestMicroService_generator_container
> docker stop 26072a9ee2d7 bcf515e5792e
26072a9ee2d7
bcf515e5792e
> rm -rf The.Folder.In.Question/ && echo good
good

相关内容