在 Mac OS X 中快速清空垃圾

在 Mac OS X 中快速清空垃圾

清空 OS X 中的垃圾可能是一个漫长的过程,尤其是当您有很多项目时(就像我一样)。这是 5 分钟后的情况:

在此处输入图片描述

有没有办法可以快速清空垃圾,或者使整个过程更快?

答案1

如果你通过终端执行此操作,速度几乎总是会快得多:

rm -rf ~/.Trash/*

但是需要注意的是,这不会删除来自外部硬盘、其他分区等的垃圾箱中的文件。这些文件存储在/Volumes/NAME_OF_DEVICE/.Trashes/USER_IDUSER_ID 为您的用户 ID 的位置。(在单用户系统上通常为 501)您必须使用第二个命令删除它们。(sudo rm -rf /Volumes/*/.Trashes/501/*应该为您完成所有操作)

与往常一样,使用时rm -rf请确保您在终端中输入的路径是正确的,否则您可能会删除比您想要删除的多得多的内容。(例如,* 之前的空格永远不是好的)

至于为什么 Finder 需要这么长时间,Finder 会做一些额外的工作,从连接到计算机的所有设备中删除文件、在必要时覆盖权限(使用名为 Locum 的子进程)、文件统计信息等等。

答案2

检查是否未设置“安全清空垃圾”。这会多次删除文件,因此删除需要更长的时间。

该设置位于 Finder 的“偏好设置”中的“高级”页面中。我听说有时 Snow Leopard 升级会意外设置此选项。

答案3

如果您需要在根模式下使用 Finder 时清空已安装卷的废纸篓(请参阅http://yourmacguy.wordpress.com/2009/09/28/snow-leopard-root-finder/),似乎您不能在按下图标后直接在废纸篓文件夹中按下清空废纸篓(即使确保正常的 Finder 没有打开)。您会听到清空废纸篓的声音,但废纸篓并没有被清空。

此外,当以根模式浏览 Finder 时不会显示隐藏文件和文件夹,即使您在自己的用户帐户中启用了此选项。

在我看来,在 Chealion 的 rm 命令后面加上星号似乎不起作用。(可能是因为末尾有双引号;也许需要如下所示的反斜杠格式。)相反,我不得不手动添加文件夹名称;在我的情况下:

sudo rm -rf /Volumes/Backup\ of\ Macintosh\ HD/.Trashes/0/_CCC\ Archives

(0 为 root 用户)

我想,这可以映射出以下内容:

sudo rm -rf /Volumes/[VOLUME NAME]/.Trashes/0/[FOLDER OR FILE NAME]

如果已安装卷的根垃圾箱中有许多文件和/或文件夹,星号通配符不起作用可能会很麻烦。


注意:在 root 模式下使用 Finder 绝对不适合一般用途;请在特殊情况下使用它。就我而言,我想备份并删除我的 Carbon Copy Cloner 存档文件(在增量备份中创建),因为在普通用户模式下使用 Finder 时,只需将“_CCC Archives”文件夹复制并粘贴到单独的位置就会引发大量错误。我在 sudo 下使用 chown 或 cp 也没有太大运气……所以我只能使用 root 模式的 Finder。


我使用的是 Mac OS X 10.6.8 Snow Leopard,在即将发布的 10.7 Lion 版本之前备份了我的驱动器。

答案4

我使用以下 bash 函数来快速清空垃圾。

emptytrash() {
    defaults write com.apple.finder EmptyTrashSecurely -bool false
    sudo rm -rf ~/.Trash/*
}

这可以添加到您的 ~/.bash_profile 或 ~/.bashrc。编辑 bash 文件的说明如下这里

使用 bash 函数的一个好处是,除了容易记住之外,您不会误操作 rm -rf 命令。

请注意,根据您的垃圾箱内容,您可能只能以 root 身份清空垃圾箱 - 因此需要 sudo。

如果愿意,您还可以将 EmptyTrashSecurely 重置回 true。

相关内容