Kali Linux에 현재 배경화면은 어디에 저장되어 있나요?

Kali Linux에 현재 배경화면은 어디에 저장되어 있나요?

정확한 이미지를 배경화면으로 설정하는 스크립트가 있는데 실행될 때마다 여전히 동일한 이미지인지 확인하고 싶습니다. 그렇지 않은 경우 배경화면을 해당 이미지로 다시 변경할지 묻는 메시지가 표시됩니다. 이는 더 큰 프로젝트의 일부이며 현재 다음과 같이 작동합니다.

  1. 스크립트는 사용자 디렉터리에 .config.txt 파일이 있는지 감지합니다.
  2. 그렇지 않은 경우 배경을 변경할지 묻는 메시지가 표시됩니다.
  3. 이 프로세스 중에 .config.txt가 생성됩니다.

나는 이 질문에 대한 답을 찾기 위해 인터넷을 검색했다. 불행히도 대부분의 주제는 우분투와 관련이 있으며 전혀 도움이 되지 않습니다. "배경 찾기" 명령을 시도했지만 합법적인 항목은 아무것도 보이지 않습니다. 그리고 맙소사, 나열된 대부분의 디렉토리를 검색했습니다. .cache에서도 검색했지만 여전히 아무것도 찾지 못했습니다.

답변1

Stock Kali 배경 화면 이미지는 다음 위치에 저장됩니다.

/usr/share/images/desktop-base/

현재 배경화면은 /etc/alternatives/desktop-background원하는 다른 .png 파일에 연결하여 설정됩니다. /usr/share/images/desktop-base/선택한 다른 폴더의 .png 파일에 연결할 수도 있습니다.

답변2

파일을 설정할 수 있는 경우

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'. 괜찮지만 다른 쉘 명령에 대한 인수로 직접 사용하려면 먼저 구문 분석해야 합니다. 따라서 따옴표와 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)"

cmp0파일이 동일한 경우 반환 값(true)을 설정하고, 파일이 다르거나 문제가 있는 경우 0이 아닌 값(false)을 설정합니다. 이를 사용하여 다음에 수행할 작업을 결정할 수 있습니다. 아마도 ||이전 명령이 0이 아닌 값(false)을 반환하는 경우에만 명령을 실행하는 연산자를 사용할 수 있습니다. cmp스위치를 통해 출력을 억제 할 수도 있습니다 -s. 그러면 일반 크론 작업으로 실행할 수 있는 다음 명령이 제공됩니다. 예를 들면 다음과 같습니다.

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

관련 정보