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

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

我四处寻找并做了一些测试,我意识到Ubuntu / Gnome并没有遵循100%的规格。 原因如下:

  • 对于非/分区,它总是使用/.Trash- ,它从未使用/.Trash/ ,即使我事先创建它。 虽然这有效,但这很烦人:如果我有15个用户,我最终在我的驱动器中有15个/.Trash-xxx文件夹,而另一个方法仍然会给出一个文件夹(有15个子文件夹)。 我的驱动器中的“污染”是非常不愉快的。 规范说“ 如果没有$topdir/.Trash目录,则使用$topdir/.Trash-$uid目录 ”。 嗯,它存在,所以它为什么从不使用它?

  • 根垃圾不起作用,至少没有开箱即用。 以root身份打开nautilus并点击垃圾桶; 它给出了一个错误。 尝试删除任何文件,它说“它无法移动到垃圾箱”。 好的,我知道这可以通过创建/root/.local/share来解决。 但规格说“ A”家庭垃圾“目录应该为任何新用户自动创建。如果垃圾操作需要这个目录但不存在,实现应该自动创建它,没有任何警告或延迟。 ” 为什么错误呢? 错误?

  • 为什么我必须更改已安装卷的/etc/fstab条目,添加uid和guid等选项,如果这些卷已经作为RW安装在每个人的位置?

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

“如果Ubuntu没有100%遵守规范,垃圾箱究竟如何工作?我能在哪里找到Ubuntu实施垃圾箱的技术参考?”

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

谢谢!

编辑:

更多信息:

  • 如果给定的fs不支持粘滞位(VFAT,NTFS),它可能也没有权限(至少VFAT肯定没有)。 那么是什么阻止了一个用户清除/恢复其他用户的./Trash-xxx ? 如果一个人可以读/写自己的垃圾桶,那么对于整个驱动器,包括其他垃圾可以做同样的事情,对吗? 或者Gnome对VFAT / NTFS fs上的./Trash-xxx文件夹有什么“额外”保护?

  • 如果Linux可以通过编辑/fstab uid和gid选项“模拟”NTFS挂载的文件权限,它是否也可以“模拟”粘滞位? 我更愿意使用/.Trash/xxx格式…

  • 对于root问题:对于/ partition,我可以将root用作root用户,然后转到/root/.local/share/Trash 。 但是如果我点击Nautilus“Trash”(作为root),我会收到一个错误。 不是吗? 因此文件被正确删除,但我无法访问它。 我所能做的只是手动“清除”它们(通过删除/root/.local/share/Trash文件),但恢复将非常棘手(打开信息文件和手动移动等)。

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

  • 关于fstab:我将它用于我的NTFS分区的永久挂载。 我有几个,如果没有“预先安装”它们真的使台式机和/或Nautilus混乱。 我宁愿预先安装,集成在我的文件系统中,安装在/data/windows/xp/windows/vista等等,并保留/media及其“mount / unmount”灵活性真正的移动驱动器

所以,如果Ubuntu / Gnome真正遵循规范,有没有办法解决根问题并“模拟”(至少)我的fstab’ed NTFS固定分区的粘性位?

据我所知,GNOME正确使用.Trash – 如果查看gio / glocalfile.c源代码,你会发现它确实尝试使用.Trash目录(如果存在)。 请注意,目录必须具有正确的权限,以便用户能够安全地将垃圾文件存储在其中(并且安全地在这里,我的意思是其他用户将无法恢复用户的已删除文件)。 对于这个GNOME要求.Trash目录必须在其上设置粘滞位 – 请参阅垃圾目录,注意FreeDesktop.Org的垃圾桶规范中的注释(1)。

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

关于root Trash – 我无法重现您描述的问题,它似乎对我有用。

关于/ etc / fstab – 我不确定那里有什么问题:除非你想要完全控制外部文件系统的安装位置,否则你应该需要使用fstab。 通常可移动媒体在检测到/媒体时为当前活动的用户自动安装,但是任何其他用户都无法访问。 如果你想要一个不同的设置,那么你应该搞乱配置文件。 但我不知道这与垃圾有什么关系。

有点晚了,但如果有人有兴趣:,我有同样的问题但是,根据建议我下载了Dolphin。 然后我在终点站通过sudo dolphin运行Dolphin。

现在,右键单击Wastebin并选择Empty Wastebin清除文件而不是产生错误。

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