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

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

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

如何查看备份的内容dconf而不将其“就位”并使用例如查看它dconf-editor

答案1

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

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

因此,您需要一个指向该特定数据库文件的自定义配置文件 - 例如,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在这种情况下,您必须检查生成的old_settings文件并手动删除或编辑无效的条目,然后再将其加载到当前数据库中。

答案2

我认为第一个答案使问题过于复杂,所以让我们再试一次,使用/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/对于等,该过程是相同的。

为了获得最佳结果,请在应用程序参考未运行时更新它们。

谢谢肉桂文档以获得提示。

相关内容