如何查看dconf数据库文件备份的内容?


20

我已经备份了dconf存储数据库的文件(~/.config/dconf/user这是一个二进制文件),现在我需要将一些密钥从备份移到dconf使用中。

如何在dconf不将备份内容“放置到位”的情况下查看其内容,例如dconf-editor

Answers:


25

要查看该文件的内容,您可以将其重命名-例如test-将其放在下面~/.config/dconf/,然后dconf从该文件中读取/转储设置。
默认情况下dconf读取在以下位置找到的用户数据库$XDG_CONFIG_HOME/dconf/

"user-db"行指定的用户数据库。
这些数据库位于中$XDG_CONFIG_HOME/dconf/。在该目录中打开的文件名与配置文件中写入的文件名完全相同。该文件应采用二进制dconf数据库格式。请注意, XDG_CONFIG_HOME不能在每个终端或会话上进行设置/修改,因为编写器和读取器将在不同的DB上工作(编写器由DBus启动,无法看到该变量)。

结果,您将需要一个指向该特定db文件的自定义配置文件-例如user-db:test,然后指示dconf通过DCONF_PROFILE环境变量转储数据(使用该自定义配置文件):

cd
cp /path_to_backup_dconf/user ~/.config/dconf/test
printf %s\\n "user-db:test" > db_profile
DCONF_PROFILE=~/db_profile dconf dump / > old_settings

结果是一个文件(old_settings),其中包含备份dconf文件中的设置,例如:

[org/gnome/desktop/interface]
font-name='DejaVu Sans Oblique 10'
document-font-name='DejaVu Sans Oblique 10'
gtk-im-module='gtk-im-context-simple'
clock-show-seconds=true
icon-theme='HighContrast'
monospace-font-name='DejaVu Sans Mono Oblique 10'

[org/gnome/desktop/input-sources]
sources=@a(ss) []
xkb-options=@as []

[org/gnome/desktop/wm/preferences]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

.......

然后,您可以删除这些文件:

rm -f ~/db_profile ~/.config/dconf/test

并将旧设置加载到当前数据库中:

dconf load / < old_settings

如果您只想转储特定设置,请提供路径:

DCONF_PROFILE=~/db_profile dconf dump /org/gnome/desktop/wm/preferences/
[/]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

但请注意,对于每个路径,您应该有一个不同的文件,并且在加载文件时,应相应地指定路径:

dconf load /org/gnome/desktop/wm/preferences/ < old_wm_settings

还要注意,由于上游的更改,较旧的dconf数据库可能包含在较新版本中无效的路径,键和值,因此dconf不能始终保证由不同版本的db-file创建的数据库文件之间的完全兼容性。在这种情况下,您必须检查结果old_settings文件并手动删除或编辑无效的条目,然后再将其加载到当前数据库中。


17
WTF?谁来为这场混乱负责,谁应该因此而遭到殴打?(但是:非常感谢您提供的这些信息,它也对我有所帮助。)
Tino

1
我相信@Tino gnome devs :)但是应该有一些前端工具
Anwar


我认为读书不是问题。只需设置XDG_CONFIG_HOME到另一个目录。无需配置文件魔术。但是,写入任意dconf文件很困难,并且可能使您的配置文件技巧成为必需。
Torsten Bronger

-1

我认为第一个答案使问题变得过于复杂,所以让我们再试一次,/org/cinnamon/以示例名称空间来备份和还原:

备份/ org / cinnamon /:

在终端上,运行:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

backup_of_my_cinnamon_settings文件保存在某处以备后用

要将/ org / cinnamon /重置为默认值:

dconf reset -f /org/cinnamon/

请注意,这样做可能会使肉桂冻结或崩溃

要恢复/ org / cinnamon的所有设置,请执行以下操作:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


的处理过程与/org/gnome/terminal/,等等相同。

为了获得最佳结果,请在不运行应用程序引用时对其进行更新。

感谢Cinnamon docs的提示。


3
我想您应该再试一次:这里的问题不是如何备份和还原某些设置,而是如何从保存的二进制文件中查看(或加载)设置。
don_crissti
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.