背景
最近在清理 macOS
文件时遇到了一个恶心的问题。有几个空的文件夹在废纸篓里,清倒废纸篓一直提示“不能完成此操作,因为项目‘xxx’正在使用中”。
这可能是多种原因造成的,一般是因为文件锁定等。
这些文件夹不能被删除就算了,而且还不能移出废纸篓,甚至还会影响清倒废纸篓里的其他文件的速度(每次都要点跳过、跳过…)。
尝试过的方法
我这么个有洁癖的人,怎么能容忍这样一个无赖文件碍我的眼呢!
以下是我试过的所有方法,如果你用过其中一种或多种都无法撼动,那就可以试试我成功的那种。
rm 命令
首先进入终端输入 sudo rm -rf ~/.Trash/
输入管理员密码,但是删不掉…
不带
sudo
会提示的内容为Operation not permitted
。
官网两种方法
如果提示的“文件正在使用中”,按以下步骤实施:
- 退出正在使用这个文件的所有应用,然后清倒废纸篓。
- 如果这种方法不起作用,则应用中可能有一个或多个后台进程正在使用这个文件。重新启动您的
Mac
,然后清倒废纸篓。 - 如果这种方法不起作用,则可能是您的某个启动项或登录项正在使用这个文件。要暂时阻止系统自动打开此类项目,请在启动
Mac
时按住Shift
键,以安全模式启动。然后清倒废纸篓,并正常重新启动Mac
。
如果您由于其他原因而无法删除文件,按以下步骤实施:
- 在启动
Mac
时按住Command-R
键,以便从macOS
恢复功能启动。 - 出现“
macOS
实用工具”窗口后,选择“磁盘工具”,然后点按“继续”。 - 在“磁盘工具”中,选择包含您需要删除的文件的磁盘。然后使用“磁盘工具”中的“急救”功能来修复这个磁盘。
- 退出“磁盘工具”,然后重新启动
Mac
并清倒废纸篓。
解决办法
然后在网上看了很多各式各样的方法,查到了这篇文章:
macOS System Integrity Protection (系统完整性保护)
意思是:
macOS
有一个超级用户root
,此用户具有对整个操作系统的绝对访问权限。为了保护系统的重要文件不会被随意修改(此类文件图标如上所示),csrutil
默认是处于enable
的状态,对一些重要文件保护起来,如果修改这些文件,就会被提示 “Operation not permitted
”。
如果关闭此功能,即置为disable
状态后,就可以对这些文件进行操作,包括删除操作。
因此如果想要删除这些文件,就要将csrutil
关闭。
概括起来就是,因为mac
系统完整性保护SIP
的原因。解决办法是,先关掉mac的系统性完整性保护,删除完文件后再打开。
操作:
- 首先关机,开机时按住 command + R , 进入恢复模式
- 在菜单 Utilities 中 打开终端 Terminal
1 | # 查看开启状态 |
关闭之后,重启电脑,就可以成功删掉了。
删除那个幽灵一般的文件夹。世界清静了!
最后,删完之后,千万记得回去把这个保护再打开,毕竟起保护作用!
以上。