垃圾箱如何工作?在哪里可以找到它的官方文档、参考或规范?

垃圾箱如何工作?在哪里可以找到它的官方文档、参考或规范?

当我尝试从已安装的 NTFS 卷管理垃圾箱时,我最终读到了FreeDesktop.org 的参考在上面。

经过一番探索和测试,我发现 Ubuntu/Gnome 并未 100% 遵循规范。原因如下:

  • 对于非 / 分区,它总是用途<driveroot>/.Trash-<uid>,它绝不使用了<driveroot>/.Trash/<uid>,即使我事先创建了它。虽然这种方法有效,但它很烦人:如果我有 15 个用户,/.Trash-xxx我的驱动器中最终会有 15 个文件夹,而另一种方法仍然会给出一个文件夹(带有 15 个子文件夹)。我的驱动器中的这种“污染”非常令人不快。规格说明“如果$topdir/.Trash目录不存在,$topdir/.Trash-$uid则使用目录“好吧,它存在,那么为什么它从不使用它呢?

  • 根垃圾不是至少开箱即用。以 root 身份打开 nautilus 并单击垃圾桶;它给出错误。尝试删除任何文件,它说“它不能移到垃圾桶”。好的,我知道可以通过创建来解决这个问题/root/.local/share。但规格说“应为任何新用户自动创建一个“主垃圾”目录。如果垃圾操作需要此目录但该目录不存在,则实现应自动创建它,而不会发出任何警告或延迟。“。那么为什么会出现错误?是 Bug 吗?

  • /etc/fstab如果卷已针对所有人作为 RW 安装,为什么我必须更改已安装卷的条目并添加 uid 和 guid 等选项?

这些只是偏离标准的一些例子。因此,问题是:

“如果 Ubuntu 没有 100% 遵守规范,那么确切地垃圾箱能用吗?在哪里可以找到有关 Ubuntu 垃圾箱实现的技术参考?

顺便说一句:如果 Ubuntu 确实遵循规范,请告诉我我做错了什么,特别是关于/.Trash-<uid>vs/.Trash/<uid>问题。

谢谢!

编辑:

更多信息:

  • 如果给定文件系统不支持粘性位 (VFAT、NTFS),那么它可能也没有权限 (至少 VFAT 肯定不支持)。那么是什么阻止一个用户清除或/恢复其他用户的?如果一个人可以读/写他自己的垃圾,那么他就可以对整个驱动器(包括其他人的垃圾)执行相同的操作,对吗?或者 Gnome对 VFAT/NTFS 文件系统上的文件夹./Trash-xxx有某种“额外”保护?./Trash-xxx

  • 如果 Linux 可以通过编辑 uid 和 gid 选项来“模拟” NTFS 安装上的文件权限/fstab,那么它也可以“模拟”粘滞位吗?我真的更喜欢使用/.Trash/xxx格式...

  • 对于 root 问题:对于 / 分区,我可以使用垃圾作为 root,它会转到/root/.local/share/Trash。但是如果我单击 Nautilus“垃圾”(作为 root),我会收到错误。你不会吗?因此文件被正确地丢弃,但我无法访问它。我所能做的就是手动“清除”它们(通过删除 上的文件/root/.local/share/Trash),但恢复会非常棘手(打开信息文件并手动移动等)。

  • 对于非 / 分区(或者至少对于 VFAT/NTFS),我甚至无法以 root 身份使用垃圾:它不会创建文件./Trash-0夹,它只是说“无法删除垃圾,是否要永久删除?”为什么?

  • 关于 fstab:我使用它来永久挂载我的 NTFS 分区。我有好几个分区,如果不是“预装”,它们会弄乱桌面和/或 Nautilus。我宁愿将它预装,集成到我的文件系统中,挂载在/data/windows/xp/windows/vista等位置,并将/media其“挂载/卸载”灵活性留给真正的可移动驱动器。

因此,如果 Ubuntu/Gnome 确实遵循规范,是否有任何方法可以修复根问题并“模拟”我的 fstab NTFS 固定分区的粘滞位(至少)?

答案1

据我所知,GNOME 正确地使用了 .Trash - 如果您查看 gio/glocalfile.c 源代码,您会发现它确实会尝试使用 .Trash 目录(如果存在)。但请注意,该目录必须具有正确的权限,以便用户能够安全地在其中存储垃圾文件(这里所说的安全是指其他用户将无法恢复用户丢弃的文件)。为此,GNOME 要求 .Trash 目录必须设置粘滞位 - 请参阅 FreeDesktop.Org 的垃圾规范中的垃圾目录,注释 (1)。

上述方法的主要问题是,您发现的大多数 r/w 可移动媒体都是 FAT,它不支持粘滞位,因此安全处理此问题的唯一方法是使用每个用户的垃圾目录。

关于根垃圾 - 我无法重现您描述的问题,但它对我来说似乎运行良好。

关于 /etc/fstab - 我不确定那里有什么问题:除非您想完全控制外部文件系统的安装位置,否则您应该需要摆弄 fstab。通常,可移动媒体会在 /media 中检测到当前活动用户后自动安装,但其他用户则无法访问它。如果您想要不同的设置,那么您应该摆弄配置文件。不过,我不明白这与垃圾有什么关系。

答案2

有点晚了,但如果有人感兴趣的话:,我遇到了同样的问题,但根据建议,我下载了 Dolphin。然后我sudo dolphin在终端中运行了 Dolphin。

现在,右键单击垃圾箱并选择清空垃圾箱清除文件而不是产生错误。

这实际上与您的问题无关,而只是一种解决方法。

相关内容