文件删除绕过 Btrfs 子卷上的垃圾箱

文件删除绕过 Btrfs 子卷上的垃圾箱

Nautilus 垃圾不会将文件移动到 btrfs 文件系统上的垃圾箱,而是永久删除它们。 Thunar 似乎做了同样的事情,并且似乎与垃圾箱的较低级别库实现有关。

我添加了一个新目录~/.local/share/Trash/,允许文件管理器 Nautilus 和 Thunar 使用垃圾箱,但它仅适用于从同一子卷中发生的删除。从任何其他 btrfs 子卷或分区进行垃圾处理都会触发永久删除。

电子书库管理器 Calibre 有不同的行为。我的 calibre 图书馆与我家位于不同的子卷上。当我从 Calibre 管理器中删除书籍时,它会将书籍移动到 .Trash-1000存储 Calibre 库的子卷根下的隐藏目录中。然而,垃圾箱没有考虑到这个隐藏目录,因此这些书一直隐藏着,占据着空间,直到我最终偶然发现它们。我不认为 Calibre 在这里有问题,因为它看起来就像在 ext3/4 文件系统中的外部媒体上管理垃圾箱的方式。

Emacs 功能(delete-file)设法将垃圾箱用于不同的子卷,更令人惊奇的是,它将垃圾箱用于 ~/.local/share/Trash/不同磁盘上的其他分区。所以它完美地完成了工作。

  • 您是否知道可以跨不同 btrfs 子卷处理垃圾箱的桌面文件管理器?
  • 您是否知道如何防止某些软件(例如 calibre)在您认为文件已被删除时将其移动到隐藏位置?
  • 看来库 gvfs 和 glib/gio 是用来管理垃圾箱的。我提到的这些软件在删除文件时都调用了不同的操作系统函数,结果并不一致。有人知道如何正确管理垃圾箱吗?

据我的研究,这个问题似乎已经存在超过 5 年了 https://bugs.launchpad.net/glib/+bug/1442649我已经使用 btrfs 很长时间了,但我很好奇其他人如何处理这个问题,特别是因为 btrfs 变得更流行并且似乎在某些 Linux 发行版安装程序中被提议。

GNU/Linux 5.15.2-2 Manjaro Gnome:41.1

相关内容