垃圾管理

来自 Arch Linux 中文维基

为防止误删文件,可以使用垃圾桶。为确保多个应用程序之间的兼容性,可以使用遵循 FreeDesktop.org's Trash specification 的软件(CLI、GUI 或库)。

注意: 某些应用程序可以在每个文件系统中使用一个垃圾桶(请参阅规范)。
警告: 删除其他文件系统上的文件时,由于文件会在文件系统之间传输,因此使用垃圾桶可能会导致一些延迟。在这种情况下,你可能需要为每个文件系统创建一个垃圾文件夹(参见规范中的 Trash directories)。

创建垃圾桶[编辑 | 编辑源代码]

这篇文章的某些内容需要扩充。

原因: 添加其它工具 (在 Talk:垃圾管理 中讨论)

一些 GUI 文件管理器,如 GNOME FilesDolphin 本身就支持将文件移入垃圾桶。还有一些 CLI 工具:

  • glib2 提供了一条 gio trash file...命令,用于将文件移入垃圾桶,而 gio trash --empty 则会清空垃圾桶。另请参见 gio(1) § COMMANDS 中的 "trash"。要通过 gio trash 命令完全支持垃圾管理,需要安装 gvfs 软件包。
  • kde-cli-tools 提供了一条 kioclient5 命令,可以使用 kioclient5 move file trash:/file 移至垃圾桶。
  • trash-cli — 实现 FreeDesktop.org's Trash specification 的命令行界面。
https://github.com/andreafrancia/trash-cli || trash-cli
  • trashman — 一个 Python 垃圾管理器。
https://github.com/Kwpolska/trashman || trashmanAUR
  • rmtrash — trash-put 与 GNUs rm 和 rmdir 兼容。
https://github.com/PhrozenByte/rmtrash || rmtrashAUR
  • trash-d — GNU rm 的直接替代品,注重兼容性,性能更好,用 D 语言编写。
https://github.com/rushsteve1/trash-d || trash-dAUR
  • trashy — 用 rust 写成的 rm 和 trash-cli 简单、快速、功能丰富的替代品
https://github.com/oberblastmeister/trashy || trashyAUR
  • gtrash — 用 Go 编写的功能丰富的 CLI 垃圾管理器
https://github.com/umlx5h/gtrash || gtrash-binAUR
https://theimpossibleastronaut.com/rmw-website/ || rmwAUR

垃圾空间使用管理[编辑 | 编辑源代码]

为了防止垃圾桶占用过多空间,您可以自己清空垃圾桶,或者制定清理政策

软件列表[编辑 | 编辑源代码]

  • autotrash — 自动清除旧垃圾文件的工具
https://github.com/bneijt/autotrash || autotrashAUR

标准[编辑 | 编辑源代码]

这篇文章的某些内容需要扩充。

原因: 添加包含标准列表的表格 (在 Talk:垃圾管理 中讨论)
  • 确保至少有 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} 并为该目录和子目录设置相关读取权限。