如何从指定dconf数据库文件执行dump操作并提取离线数据文件中的dconf设置
如何从指定dconf数据库文件执行dump操作并提取离线数据文件中的dconf设置
我完全懂你的需求——不想依赖当前运行系统的dconf缓存,而是直接从备份的~/.config/dconf/user文件里提取gnome-terminal的配置,对吧?其实dconf本身就支持操作离线的数据库文件,不用非得依赖当前系统的状态,下面给你说具体的操作方法:
核心思路
平时我们用dconf dump命令时,默认会读取当前用户的dconf数据库(或者它的缓存),而这个数据库的位置由环境变量DCONF_USER_CONFIG_DIR控制,默认指向~/.config/dconf。我们只需要把备份的数据库文件放到一个临时目录,然后让dconf命令读取这个临时目录里的文件就行。
- 创建临时目录:先建一个临时文件夹来存放备份的dconf数据库,避免和当前系统的文件冲突:
mkdir -p ~/temp_dconf_backup - 复制备份文件到临时目录:把你手里的备份
user文件复制到这个临时目录里:
注意把cp /path/to/your/backed-up/dconf/user ~/temp_dconf_backup//path/to/your/backed-up/dconf/user替换成你实际的备份文件路径哦。 - 指定离线数据库执行dump:通过设置环境变量,让
dconf命令读取临时目录里的备份文件,然后dump出你需要的gnome-terminal配置:
执行完这条命令,你就能看到备份文件里的gnome-terminal配置内容了,要是想保存到文件里,直接加输出重定向就行:DCONF_USER_CONFIG_DIR=~/temp_dconf_backup dconf dump /org/gnome/terminal/DCONF_USER_CONFIG_DIR=~/temp_dconf_backup dconf dump /org/gnome/terminal/ > gnome_terminal_backup.txt
额外说明
- 为什么这个方法能绕过缓存?因为我们指定了一个独立的临时目录,dconf不会去调用当前系统的
dconf-service缓存,而是直接读取临时目录里的原始二进制数据库文件。 - 如果之后要恢复这些配置到当前系统,只需要用
dconf load命令,把刚才导出的文件导入就行:dconf load /org/gnome/terminal/ < gnome_terminal_backup.txt
备注:内容来源于stack exchange,提问作者jimav
相关产品推荐
相关产品推荐

