Kali Linux 中目前的桌面儲存在哪裡?
我有一個腳本,將一個精確的圖像設置為牆紙,我希望它在每次執行時檢查它是否仍然是相同的圖像。如果沒有,它會詢問您是否要再次將桌面更改為此圖像。它是更大項目的一部分,現在它的工作方式如下:
- 腳本檢測使用者目錄中是否有 .config.txt 文件
- 如果不是,它會詢問您是否要更改背景
- .config.txt 在此過程中創建
我已經在整個網際網路上搜尋了這個問題的答案。不幸的是,大多數主題都與 Ubuntu 相關,它們根本沒有幫助。我已經嘗試過定位背景命令,但我沒有看到任何合法的東西,哦,天哪,我已經搜尋了大多數列出的目錄。我也一直在 .cache 中搜尋,但仍然沒有。
如果你可以設置文件
gsettings set org.gnome.desktop.background picture-uri file:///path/to/the/file
然後你可以得到文件
gsettings get org.gnome.desktop.background picture-uri
這將為您提供一個
'file:///usr/share/images/desktop-base/desktop-background.xml'
不錯的字元串,但需要先對其進行解析,然後才能直接將其用作另一個 shell 命令的參數。所以我們可以很容易地去掉引號和file://
帶有 的部分cut
,比如:gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1
(注意:返回的文件對我來說實際上是一個 XML 文件,但我沒有使用 GNOME,所以我不知道這在實時系統上是如何工作的。在你之前可能需要在這裡進行另一個處理步驟可以開始比較文件。)
並且由於您已經知道要比較的文件的名稱,因此可以
cmp
用來比較這兩個文件:cmp my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)"
cmp
如果文件相同,將設置返回值0
(true),如果文件不同或出現問題,則設置非零 (false)。我們可以使用它來決定下一步要做什麼,也許使用||
僅目前一個命令返回非零(假)時才會執行命令的運算符。我們還可以cmp
通過-s
開關抑制輸出。這給了我們這個命令,例如,您可以作為正常 cron 作業執行:cmp -s my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)" || gsettings set org.gnome.desktop.background picture-uri file:///full/path/to/my/file.jpg
庫存的 Kali 桌面圖像儲存在:
/usr/share/images/desktop-base/
目前桌面是通過連結 到您希望將其設置
/etc/alternatives/desktop-background
為的任何 .png 文件來設置的;/usr/share/images/desktop-base/
儘管您可以將其連結到您選擇的任何其他文件夾中的 .png 文件。