垃圾桶如何工作?在哪里可以找到其官方文档,参考资料或规格?


14

当试图从已挂载的NTFS卷管理垃圾箱时,我最终阅读了FreeDesktop.org的参考资料

反复研究并做一些测试,我意识到Ubuntu / Gnome没有100%遵循规范。原因如下:

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

  • 根垃圾确实没有工作,至少不能开箱即用。以根用户身份打开鹦鹉螺,然后单击垃圾箱;它给出了一个错误。尝试删除任何文件,并说“它不能移到回收站”。好的,我知道可以通过创建来解决此问题/root/.local/share。但是规范说:“ 应该为任何新用户自动创建一个“家庭垃圾箱”目录。如果该目录是垃圾箱操作所需的目录,但该目录不存在,则实现应自动创建该目录,而不会发出任何警告或延迟。为什么会出错呢?虫子?

  • /etc/fstab如果每个人的卷都已经作为RW挂载,为什么还要更改挂载卷的条目并添加uid和guid之类的选项?

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

“如果Ubuntu的不坚持100%的规范,如何准确不垃圾的工作?我在哪里可以找到Ubuntu的实施垃圾的技术参考?”

顺便说一句:如果Ubuntu确实符合规范,请告诉我我做错了什么,尤其是在/.Trash-<uid>vs /.Trash/<uid>问题上。

谢谢!

编辑:

更多信息:

  • 如果给定的fs不支持粘性位(VFAT,NTFS),则它可能也没有权限(至少VFAT当然没有)。那么,是什么阻止了一个用户清除/其他用户的数据./Trash-xxx呢?如果一个人可以读/写自己的垃圾桶,那么对整个驱动器(包括其他人的垃圾桶)也可以这样做,对吗?还是Gnome ./Trash-xxx在VFAT / NTFS fs 上的文件夹上有某种“额外”保护?

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

  • 对于根问题:对于/分区,我可以将垃圾桶用作根,然后转到/root/.local/share/Trash。但是,如果我单击Nautilus“ Trash”(以root用户身份),则会收到错误消息。是不是 因此文件已正确删除,但我无法访问它。我所能做的就是手动“清除”它们(通过删除上的文件/root/.local/share/Trash),但是还原将非常棘手(打开信息文件并手动移动等)。

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

  • 关于fstab:我将其用于NTFS分区的永久挂载。我有几个,如果没有“预装”的话,它们真的会使桌面和/或Nautilus杂乱无章。我宁愿把它预先安装,集成在我的文件系统,像坐骑/data/windows/xp/windows/vista,等等,并留下/media其“挂载/卸载”灵活性只为真正的可移动驱动器。

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

Answers:


3

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

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

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

关于/ etc / fstab-我不确定那里是什么问题:除非您想完全控制外部文件系统的安装位置,否则您应该弄乱fstab。通常,在/ media中检测到当前处于活动状态的用户后,可移动介质会自动安装,但是其他用户将无法访问该介质。如果您要使用其他设置,则应将配置文件弄乱。不过,我不知道这与垃圾有何关系。


谢谢!您给了我很多有趣的信息,然后出现了一些问题...我应该在哪里询问/回复您的评论?在此发表评论还是编辑我的原始问题?
MestreLion 2011年

我已经将您的答案标记为可接受的答案...,但是,如果可能的话,请回答我(已编辑)问题中提到的新问题。并非常感谢您的回答!
MestreLion

1

这有点晚,但是如果有人感兴趣:,我遇到了同样的问题,但是根据建议,我下载了Dolphin。然后,我sudo dolphin在航站楼里穿过海豚。

现在,右键单击废物箱并选择清空废物箱将清除文件,而不产生错误。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.