如何使用终端清空垃圾箱?


241

我无法在任何地方搜索垃圾。你能告诉我一个命令或类似的东西用终端清空垃圾吗?


2
这是3年前发布的。我们需要一些能说明这一点的东西,包括它在2017
SDsolar '17

Answers:


313

您可以使用ˋrmˋ命令:

 rm -rf ~/.local/share/Trash/*

rm命令删除(删除)文件或目录。

-f, --force     Ignore nonexistant files, and never prompt before removing.
-r, -R, --recursive     Remove directories and their contents recursively.

垃圾文件夹位于: $HOME/.local/share/Trash

请谨慎使用rm命令-文件不会发送到垃圾桶中,您可以在其中删除它们,因此撤消并不容易。


10
如果垃圾在其他地方,这将无法正常工作。
Braiam 2014年

1
@ hellodear2请注意,这~只是特定于外壳程序的内容,它会扩展到您的主目录路径。使用(例如)"~/some/path"不会因为引用而扩展。同样,~如果您在地址栏中输入文件,并非所有文件管理器都会理解。
罗斯兰

11
没有权限,rm不能删除敏感的系统文件夹和文件,也不能完全删除文件夹,除非您给它-r(或等效选项)选项。但是,如果使用时不当,rm可能会丢失重要的个人文件,尤其是与通配符一起使用时。
Marc van Leeuwen 2014年

1
@ hellodear2看到这个这个问题的例子,当波浪似乎并没有工作(这是约庆典虽然)。我真的不知道哪些特定的外壳程序不支持它,但是您应该了解,代字号不是在文件系统级别而是在应用程序级别实现的。XFE是~地址栏中无法理解的文件管理器示例。
鲁斯兰

4
为什么这看似大概。比在任何文件浏览器中单击垃圾桶“空”快100倍?
布劳伦

131

随着trash-cli安装,你可以做

trash-empty

关于垃圾的处理更有趣的细节:这里


6
但是,这将无法立即使用,并且需要安装trash-cli
skarz 2014年

19
是的,但这是正确的答案。举例来说,如果您有USB随身碟,则将垃圾桶中的文件放置在设备根目录中的隐藏目录中(至少在上次我检查时发生).Trash-$UID,因此在这种情况下,垃圾桶实际上位于两个不同的地方...
Rmano 2014年

太可惜了,您必须安装一个包装才能清空垃圾箱。用磁盘空间计算垃圾是Ubuntu最令人讨厌的功能之一。
迈克尔(Michael)

3
@Michael“ Trash”是桌面管理器提供的功能,它位于您通常在命令行中使用的内容之上的一层。实际上,它所做的就是将文件移动到同一设备上的隐藏文件夹中,并存储一些元数据,以便用户愿意时可以将它们放回原处。在“清空”垃圾桶之前(实际上是在删除文件时),您实际上不会回收任何空间。
Seamus Connor

3
应当注意,该命令是用户特定的。我安装了它,然后开始思考为什么它不起作用,直到我意识到文件已被另一个用户删除。
Billynoah

52

您正在寻找$XDG_DATA_HOME/Trash目录。垃圾桶目录在freedesktop网站的“桌面垃圾桶规范”中定义。该变量通常在终端窗口中不可用,因此您需要trash-empty。该命令遵循Freedesktop.org的所有规范,它足够智能,可以找出垃圾箱在哪里。您将需要先安装它。

为此,还有其他工具,例如gvfs-trash --empty也可以将项目发送到垃圾箱。


为+1 $XDG_DATA_HOME。你是怎么得到的?
Jobin 2014年

4
@Jobin都在规范中。ramendik.ru/docs/trashspec.html
Braiam 2014年

@Braiam能否请您详细说明?如何使用?我不明白它如何解决我的目的。请解释一下。而且我不想垃圾,我想清空垃圾。
hellodear

2
@ hellodear2 trash-empty 清空垃圾箱。您只需要运行它。二进制文件在trash-cli软件包中。我解释柔道解决方案的来源并提供另一种工具,它与柔道解决方案相同。
Braiam

现在gio trash --empty,至少在Ubuntu 18.10 / GNOME 3
JB Rainsberger


1

我有问题

rm -rf ~/.local/share/Trash/*

所以我必须做:

sudo -s
cd ~/.local/share/Trash/  

在键入下一个命令之前,请绝对确保您位于正确的目录中,因为您可以通过这种方式轻松删除主文件夹中的所有内容,并且不会出现警告。

rm -fr *

然后一切都消失了...


为什么是sudo,为什么是rm -rf。没必要
mikewhatever

1
@mikewhatever-为什么sudo?因为我已经以超级用户身份删除了某些内容,所以要清空Trash,我必须这样做sudo才能拥有该特权。只需sudo rm -rf /fullabsolutepath一个命令即可工作。
哈维

如果从根文件夹删除,则rash-empty和rm -rf〜/ .local / share / Trash / *不起作用。@Cisum的答案最适合我。
Rainer

是wtf吗?我尝试了一下,一切都消失了。所有数据都来自我的系统。
Rajneesh071 '18

2
我不知道是谁赞成这个?这是一个糟糕的建议/命令集,如果某些命令rm -fr *在错误的文件夹中运行las ,则非常危险。请编辑您的答案,至少使用完整路径...
Tanasis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.