回收站管理

出自 ArchWiki

为了防止意外删除文件,您可以使用回收站。为了确保多个应用程序之间的兼容性,您可以使用遵循 FreeDesktop.org 的回收站规范的软件(CLI、GUI 或库)。

注意:某些应用程序可以为每个文件系统使用一个回收站(请参阅规范)
警告:当删除另一个文件系统上的文件时,使用回收站会引起一些延迟,因为文件将在文件系统之间传输。 在这种情况下,您可能需要使用为每个文件系统创建一个回收站文件夹的实现(请参阅规范中的“回收站目录”)。

回收站创建

此条目或章节需要扩充。

理由:添加其他实用程序(在 Talk:Trash management 中讨论

一些 GUI 文件管理器,例如 GNOME FilesDolphin,原生支持将文件移动到回收站。 还有一些 CLI 工具

  • glib2 提供了 gio trash 文件... 命令来将文件移动到回收站,而 gio trash --empty 则清空回收站。 另请参阅 gio(1) § COMMANDS 中的 “trash”。 完全支持通过 gio trash 命令进行回收站管理需要 gvfs 软件包。
  • kde-cli-tools 提供了 kioclient5 命令,可以像 kioclient5 move 文件 trash:/ 这样使用,将 文件 移动到回收站。
  • trash-cli — 一个实现了 FreeDesktop.org 回收站规范的命令行界面。
https://github.com/andreafrancia/trash-cli || trash-cli
  • trashman — 一个 Python 回收站管理器。
https://github.com/Kwpolska/trashman || trashmanAUR
  • rmtrash — 使 trash-put 兼容 GNU 的 rm 和 rmdir。
https://github.com/PhrozenByte/rmtrash || rmtrashAUR
  • trash-d — GNU rm 的替代品,专注于兼容性和更高的性能,用 D 语言编写。
https://github.com/rushsteve1/trash-d || trash-dAUR
  • trashy — 简单、快速且功能丰富的 rm 和 trash-cli 的替代品,用 Rust 编写
https://github.com/oberblastmeister/trashy || trashyAUR
  • gtrash — 一个功能丰富的用 Go 编写的回收站 CLI 管理器
https://github.com/umlx5h/gtrash || gtrash-binAUR
  • rmw (ReMove to Waste) — 一个可配置的 CLI 回收站管理实用程序,可以清除 X 天后的回收站,并与 FreeDesktop.org 的回收站规范集成,用 C 语言编写
https://theimpossibleastronaut.com/rmw-website/ || rmwAUR

回收站空间使用管理

为了防止回收站占用过多空间,您可以手动清空它,或者制定清理策略

软件列表

  • autotrash — 用于自动清除旧回收文件的工具
https://github.com/bneijt/autotrash || autotrashAUR

标准

此条目或章节需要扩充。

理由:添加包含标准列表的表格(在 Talk:Trash management 中讨论
  • 确保至少有 x MB 的可用空间
  • 删除早于 x 天的文件
  • 仅当可用空间少于 x MB 时才清空(与之前的标准结合使用时很有用)
  • 最大回收站大小
  • 文件大小
  • 文件类型
  • 原始路径

自动化

要自动化清空回收站,您可以使用 cronsystemd/Timersinotify(使用 inotify,只有新的删除操作会触发回收站自动化)

故障排除

无法找到或创建回收站目录

外部驱动器

/etc/fstab 可能未正确设置。 请注意,ID 必须替换为您自己的用户 ID,通过 $ id 命令获取。

/etc/fstab
# <device>                                <dir>              <type>    <options>         <dump> <fsck>
UUID=75667752-8b06-11ea-bc55-0242ac130003 /externalDrive     ntfs-3g   defaults,uid=ID   0      1

确保驱动器的根目录包含 ~/.Trash-1000/{expunged,files,info},并为目录和子目录设置相关的读取权限。