所以,我正忙着为自己编写一个程序来从我的垃圾箱(回收站)中移动和恢复项目,目前我可以将它移动到垃圾箱,但是如果我尝试使用文件管理器从垃圾箱中恢复它,它会失败。
垃圾目录位于~/.local/share/Trash
其中,其中有 2 个文件夹,files/
用于存储要删除的文件,以及info/
存储有关文件的数据。我在应用程序中得到了正确的文件命名,所以这不是问题,而且我得到了存储在 info/ 文件夹中的详细信息也是正确的。然而,如果我用我的文件管理器删除一些东西然后从垃圾箱中恢复它,没有问题,但是当我用我的代码将它移动到垃圾箱时,它只能通过手动移动它来恢复......
以下是我的一些应用示例:
$ nrash todelete.txt
> Moved to trash
以上创建了这个:(在垃圾箱/文件中)
todelete.txt
(在垃圾箱/信息内)
todelete.txt.trashinfo
在.trashinfo文件中,存在以下内容:
[Trash Info]
Path=/home/netsu/Documents/todelete.txt
DeletionDate=2021-10-08T18:24:04
相反,在从文件管理器中删除的文件的 .trashinfo 中,您会发现:
[Trash Info]
Path=/home/netsu/Documents/pp.txt
DeletionDate=2021-10-08T18:25:02
两者完全相同,但工作方式不同......将东西移到垃圾桶有什么我想念的吗?为什么文件管理器放在那里的文件可以恢复,而我放在那里的文件却不能?这是垃圾在 Linux 发行版上的通用方式,还是会根据发行版/桌面环境而改变?
注意:当我在文件管理器中打开文件时,我的文件确实出现在垃圾箱中,但我无法恢复它。
- 发行版:Solus
- 德:伴侣
- 文件管理器:Caja
因此,我无法恢复它的原因很简单,在此链接https://specifications.freedesktop.org/trash-spec/trashspec-latest.html(感谢 Abdullah!)中,它在垃圾目录的内容下指定
我在创建信息文件之前移动了文件/文件夹,这反过来导致了上述问题的发生。此外,对于任何有兴趣了解您的垃圾箱/回收站如何工作的人,我真的建议您阅读发布的链接。