Saki's 研究记录

Mac删除文件时显示“不能完成此操作,因为项目‘xxx’正在使用中”

字数统计: 884阅读时长: 3 min
2024/11/06

背景

最近在清理 macOS 文件时遇到了一个恶心的问题。有几个空的文件夹在废纸篓里,清倒废纸篓一直提示“不能完成此操作,因为项目‘xxx’正在使用中”。
这可能是多种原因造成的,一般是因为文件锁定等。
这些文件夹不能被删除就算了,而且还不能移出废纸篓,甚至还会影响清倒废纸篓里的其他文件的速度(每次都要点跳过、跳过…)。

尝试过的方法

我这么个有洁癖的人,怎么能容忍这样一个无赖文件碍我的眼呢!
以下是我试过的所有方法,如果你用过其中一种或多种都无法撼动,那就可以试试我成功的那种。

rm 命令

首先进入终端输入 sudo rm -rf ~/.Trash/输入管理员密码,但是删不掉…

不带sudo会提示的内容为Operation not permitted

官网两种方法

如果提示的“文件正在使用中”,按以下步骤实施:

  1. 退出正在使用这个文件的所有应用,然后清倒废纸篓。
  2. 如果这种方法不起作用,则应用中可能有一个或多个后台进程正在使用这个文件。重新启动您的 Mac,然后清倒废纸篓。
  3. 如果这种方法不起作用,则可能是您的某个启动项或登录项正在使用这个文件。要暂时阻止系统自动打开此类项目,请在启动 Mac 时按住 Shift 键,以安全模式启动。然后清倒废纸篓,并正常重新启动 Mac

如果您由于其他原因而无法删除文件,按以下步骤实施:

  1. 在启动 Mac 时按住 Command-R 键,以便从 macOS 恢复功能启动。
  2. 出现“macOS 实用工具”窗口后,选择“磁盘工具”,然后点按“继续”。
  3. 在“磁盘工具”中,选择包含您需要删除的文件的磁盘。然后使用“磁盘工具”中的“急救”功能来修复这个磁盘。
  4. 退出“磁盘工具”,然后重新启动 Mac 并清倒废纸篓。

解决办法

然后在网上看了很多各式各样的方法,查到了这篇文章:
macOS System Integrity Protection (系统完整性保护)

意思是:

macOS 有一个超级用户 root,此用户具有对整个操作系统的绝对访问权限。为了保护系统的重要文件不会被随意修改(此类文件图标如上所示),csrutil 默认是处于 enable 的状态,对一些重要文件保护起来,如果修改这些文件,就会被提示 “Operation not permitted”。
如果关闭此功能,即置为 disable 状态后,就可以对这些文件进行操作,包括删除操作。
因此如果想要删除这些文件,就要将 csrutil 关闭。

概括起来就是,因为mac系统完整性保护SIP的原因。解决办法是,先关掉mac的系统性完整性保护,删除完文件后再打开。

操作:

  • 首先关机,开机时按住 command + R , 进入恢复模式
  • 在菜单 Utilities 中 打开终端 Terminal
1
2
3
4
5
6
# 查看开启状态
csrutil status
# 关闭
csrutil disable
# 开启
csrutil enable

关闭之后,重启电脑,就可以成功删掉了。
删除那个幽灵一般的文件夹。世界清静了!
最后,删完之后,千万记得回去把这个保护再打开,毕竟起保护作用!

以上。

CATALOG
  1. 1. 背景
  2. 2. 尝试过的方法
    1. 2.1. rm 命令
    2. 2.2. 官网两种方法
  3. 3. 解决办法