/********************************************************************* * Author : Samson * Date : 07/22/2014 * Test platform: * Mint 15 * GNU bash, version 4.2.45 * *******************************************************************/
先来说说这个问题出现的现像吧:
当从回收站中还原原来属于不同目录下但同名的两个文件或文件夹时,会在恢复时出现其中一个的名称在恢复后增加.2的后缀,那么此问题如何解决呢?
主要在Mint下进行了此问题的研究:
当文件删除后,会在系统中的~/.local/share/Trash目录下存在files和info两个目录,files这个目录存放的是实际删除的文件,而在info目录中存放的是对应的删除文件的原来的全路径及删除的时间,如下:
删除两个不同目录下名称都为11111的文件后, files和info目录下的文件为:
ufo@ufo:~$ ls ~/.local/share/Trash/files/
11111 11111.2 tem
ufo@ufo:~$ ls ~/.local/share/Trash/info/
11111.2.trashinfo 11111.trashinfo tem.trashinfo
info文件中的内容为:
[Trash Info]
Path=/home/ufo/Desktop/2222/11111
DeletionDate=2014-07-23T16:01:29
/home/ufo/.local/share/Trash/info/11111.trashinfo (END)
[Trash Info]
Path=/home/ufo/Desktop/111/11111
DeletionDate=2014-07-23T16:01:37
/home/ufo/.local/share/Trash/info/11111.2.trashinfo (END)
首先猜测判断,应该是处理的时候直接读取了info下的文件名,而不是读取的info目录下的对应的目录中的Path值,因为Path全路径中是包含了原始文件名的;
然后看nemo代码,作为一个gtk菜鸟来说,代码看的真TM的火大呀………………
最后还是在网上找到了gnome社区的筒子们做出的贡献的代码,这时候,觉得社区的力量真TM大呀,心中敬佩之情油然而生呀,不能再像某地的g???e社团的孩子们没有代码的玩法了。
主要的修改方法,其实和我上面分析的差不多,具体修改请参看以下关于nautilus包的代码,nemo其实和它是一个妈生的:_(
https://git.gnome.org/browse/nautilus/commit/?id=ecee8be850b8342c804de2ecc3e613b99a20a010
在nemo修改的时候,把代码路径中的nautilus替换为nemo即可;
向为社区作出贡献的筒子们致以敬意!!!!!