无法清空垃圾箱和删除时间机器备份?这是解决方法

Time Machine 备份成功时清空垃圾箱't delete

尽管 Time Machine 是轻松备份的卓越解决方案,但对于某些 Time Machine 用户来说,可能会出现一个特殊问题,导致 Mac OS X 回收站在备份驱动器连接到 Mac 时无法清空。这通常表现为以下内容;用户尝试清空垃圾桶,垃圾桶要么拒绝清空,要么卡在“准备清空垃圾桶……”,然后计数高达数十万(或更多)文件。如果放任不管,垃圾箱有时会在数小时后开始删除文件,但速度太慢,以至于您实际上需要等待一天或更长时间才能删除垃圾箱——这几乎不切实际。

删除 Time Machine 备份时无限计算垃圾项目

这显然是一个怪癖或错误,当有人试图手动删除备份以在硬盘驱动器上创建额外空间时,或者当 Time Machine 试图执行内务处理时旧备份被损坏时,它似乎会发生。这个问题应该在过去的 Mac OS X 更新中得到解决,但它仍然在 Mountain Lion、Mavericks、Sierra、El Capitan 等中继续存在,可能是因为导致问题的文件通常更旧,通常来自 Mac OS X Lion 及之前。

好的,问题和一些背景的讨论已经足够了,让我们开始解决方案,这样您就可以再次清空垃圾箱并一劳永逸地删除那些旧的顽固的 Time Machine 备份。

Time Machine 备份文件卡住时手动清空废纸篓

这需要使用 强制删除 通过终端,这使它更高级一些。如果您不知道自己在做什么或对 Terminal 不满意,您可能想完全跳过此步骤,而只是等待通过 Finder 删除令人难以置信的冗长垃圾桶。继续需要您自担风险。

请务必准确发出命令,否则您可能会无意中删除不想删除的文件,这一点非常重要,因为终端不会提示您批准或确认,它只会删除所有内容。

  • 将 Time Machine 驱动器连接到 Mac 并(暂时)停止任何现有的 Time Machine 备份
  • 打开 /Applications/Utilities/ 中的终端,然后输入以下命令将活动目录更改为 Time Machine 备份驱动器的目录:
  • cd /Volumes/(备份驱动器名称)/.Trashes/

    例如,要将目录更改为名为“Mac Backups”的备份驱动器,命令为:

    cd /Volumes/Mac Backups/.Trashes/

  • 通过列出 .Trashes/ 文件夹的内容来确认您位于正确的位置,这通常会显示一个“501”子文件夹,其中包含顽固的 Backups.backupdb 文件。您可以使用 sudo ls 再次检查您是否在正确的位置:
  • sudo ls 501/

    注意:在某些情况下,501 文件夹将不存在,或者会被命名为其他名称。有时 .Trashes 也直接包含 backupdb 文件。如果找不到 501/ 目录,只需删除 .Trashes/ 的内容即可。我们将把重点放在 .Trashes/501/ 上,使其尽可能冗长,以减少 rm 命令的错误。

  • 现在使用 rm 命令删除 .Trashes 501 文件夹的内容。请务必在此处使用正确的语法,否则您可能会不小心删除不需要的内容。 rm 命令不要求确认,它只是删除文件。
  • sudo rm -rf 501/Backups.backupdb/

    在要求开始删除 .Trashes/501/Backup.backupdb/ 文件时输入管理员密码

  • 让终端坐下来做它的事情,没有可见的活动,但通常文件最多会在 2-15 分钟内被删除,完成后退出终端
  • 通过像往常一样在 Mac OS X Finder 中清空垃圾桶,确认垃圾桶再次按预期工作

仅限高级用户:垃圾桶时间机器备份的较短语法版本

通过消除上述步骤中使用的一些安全措施,可以实现上述过程的更短版本。仅当您熟悉终端时才使用此命令,将“BackupDriveName”替换为相关硬盘驱动器的名称:

sudo rm -rf /Volumes/BackupDriveName/.Trashes/*

从回收站中强制删除 Time Machine 备份

仅限高级用户:使用 tmutil 通过终端删除卡住的备份

您还可以选择使用命令行“tmutil”工具从 Time Machine 中删除备份。只需将“DRIVENAME”替换为您的 Time Machine 驱动器名称,将“BACKUPTODELETE”替换为按日期确定的相关备份。这需要使用终端,这意味着它仅适用于高级 Mac 用户:

sudo tmutil delete /Volumes/DRIVENAME/Backups.backupdb/BACKUPTODELETE

sudo 需要管理员密码才能完成任务。

现在我们已经介绍了解决这个问题的几种方法,肯定有一种适合您。

如果您尝试删除旧备份的原因是为其他媒体释放空间,考虑对备份驱动器进行分区,这样一个部分专门用于 Time Machine,而其余部分可用于直接文件存储。这将避免手动删除 Time Machine 备份以便为文件腾出空间的需要,并有望完全避免出现此问题。

此外,请记住,如果您使用冗余时间机器备份,您可能需要执行在两个备份驱动器上执行此过程。

在“系统完整性保护”阻止您这样做时删除时间机器备份

在具有较新 Mac OS 版本的较新 Mac 上可能发生的另一种情况是,在尝试删除 Time Machine 备份时出现错误,显示类似“由于系统完整性保护而无法删除废纸篓中的项目”之类的内容。此错误的解决方法是暂时在 Mac 上禁用 SIP,垃圾Time Machine 备份文件,然后重新启用 SIP。

哪种方法适合您?在下面的评论中分享您自己的经验和解决方案。