禁用XDG目录更新
前段时间更新ArchLinux时,发现我的目录文档莫名其妙的被删除了!里面有大量的资料,由于之前有备份的习惯,损失不算很严重,但是也带来了麻烦,由于还有一台工作电脑,但是测试工作电脑时却没有发生同样的问题。今天尝试解决这一问题,导致这个问题的主角是程序xdg-user-dir,
和它相关的文件一共有六个,即
1 | /etc/xdg/user-dirs.conf |
其中user-dirs.conf
保存了配置信息,user-dirs.defaults保存了默认配置,用户登录是会读取user-dirs.defaults,
并根据它决定目录名称的编码.
文件user-dirs.dirs则保存了本机的目录名称,由于使用中文,所以也相当于翻译。在/usr/bin/下的两个是二进制执行文件,我们不能修改它们。但是之前一直使用默认配置时并没有造成目录丢失的问题,而此次丢失在我将user-dirs.dirs改成正确的后,每次重启系统就又将文档
改成了$HOME,
执行命令xdg-user-dirs-update后发现,生成的user-dirs.dirs就是错误的!所以判断出,这是由于xdg-user-dirs-update升级造成的,经研究后,需要手动改user-dirs.dirs为
1 | # This file is written by xdg-user-dirs-update |
为了避免重启时再次执行xdg-user-dirs-update生成错误的user-dirs.dirs,
就需要关闭它!, 方法就是配置文件user-dirs.conf,
将True改为False, 修改后为
1 | # This controls the behaviour of xdg-user-dirs-update which is run on user login |
注意:由于这个升级的细节导致了文档目录丢失,这个是因为我写的另一个脚本wms.sh根据xdg-user-dir来判断目录,误删除了。所以得到的教训就是自己编写脚本时尽量不要使用xdg-user-dir来判断目录名称,写成绝对路径就好。