禁用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
来判断目录名称,写成绝对路径就好。