如何查看 dconf 數據庫文件的備份內容?
我已經備份了儲存我的
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
文件並手動刪除或編輯無效的條目,然後再將其載入到目前數據庫中。