Dconf

如何查看 dconf 數據庫文件的備份內容?

  • August 13, 2021

我已經備份了儲存我的dconf數據庫的文件(~/.config/dconf/user這是一個二進製文件),現在我需要將一些密鑰從備份移動到dconf正在使用的文件中。

如何查看備份的內容dconf而不將其“放置”並使案例如查看它dconf-editor

要查看該文件的內容,您可以重命名它 - 例如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數據庫可能包含在新版本中無效的路徑、鍵和值,因此不同版本創建的 db 文件之間的完全兼容性dconf並不總是得到保證。在這種情況下,您必須檢查生成的old_settings文件並手動刪除或編輯無效的條目,然後再將其載入到目前數據庫中。

引用自:https://unix.stackexchange.com/questions/199836