현재 사용자의 데스크탑 디렉토리 경로는 어디에 저장되어 있습니까?

현재 사용자의 데스크탑 디렉토리 경로는 어디에 저장되어 있습니까?

저는 Linux를 처음 접했고 모든 기본 사항을 학습하고 있습니다. 이 작업을 수행했을 때 운영 체제가 특정 파일을 다르게 처리하는 것이 얼마나 이상한지 깨달았습니다. 즉, 해당 파일이 현재 로그인한 사용자와 연결된 데스크톱 파일인 경우 GUI 데스크톱 환경에 표시하는 것입니다. 운영 체제는 현재 사용자 데스크탑 디렉토리의 경로 변수를 어떻게 알 수 있습니까? 해커의 재미를 위해 GUI 데스크탑에 임의의 디렉토리를 표시하도록 변경할 수 있습니까?

답변1

데스크탑 디렉토리의 기본 경로는 언어에 따라 다릅니다. 따라서 시스템에 이러한 상황이 존재하는지 $HOME/Desktop더 잘 추측할 수 있습니다 .xdg-user-dir

$ xdg-user-dir DESKTOP
/home/arnie97/桌面

(패키지 이름은xdg-사용자 디렉토리에스, 실행 파일 이름은 xdg-user-목차. 이 점을 지적해주신 @theDrake에게 감사드립니다. )


다른 방법이 있습니다xdg-user-dirs홈페이지, 안타깝게도 내 시스템에서는 작동하지 않습니다.

다음은 데스크탑 및 다운로드 디렉토리를 찾는 방법에 대한 쉘스크립트 예입니다.

test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && source ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}
echo ${XDG_DOWNLOAD_DIR:-$HOME}

애플리케이션 코드의 경우 다양한 데스크탑이 이를 통합하고 이러한 디렉토리를 찾을 수 있는 좋은 API를 갖기를 바랍니다.

답변2

일반적으로 GNU/Linux(예: Unix)에서 사용자의 데스크탑 디렉토리는 로 표시될 수 있습니다 ~/Desktop. 이 약어는 ~/홈 디렉토리의 모든 항목으로 확장됩니다 /path/to/home/username.

나는 대부분의껍데기~(예: bash, ksh, csh 등) 은 홈 디렉터리로 확장되지만 전부는 아닙니다(예: rc). 물결표는 리터럴 문자이므로 파일을 가질 수 있습니다 ~filename. 따라서 쉘은 특정 조건에서 물결표를 확장하도록 설계되어야 합니다.

답변3

대부분의 배포판에 대한 경로(전부는 아니지만 대부분이라고 말합니다. Linux(또는 GNU/Linux)는 좋든 나쁘든 변경할 수 없다면 아무 것도 아니기 때문입니다.) /home/<user name>/Desktop 다음과 같이 명령줄을 통해 액세스할 수 있습니다 cd /home/<username>/Desktop . 파일은 다음과 같이 간단합니다. 따옴표 없이 "ls" 명령을 사용하는 것과 같습니다.

답변4

이는 데스크탑 환경에 따라 다릅니다.

창 관리자를 사용하는 경우 다음과 같은 다양한 도구를 사용하여 데스크탑에 콘텐츠를 표시할 수 있습니다.PCmanFM 데스크탑.

대부분의 도구와 데스크탑 환경은 xdg-user-dir DESKTOP 설정을 따릅니다.

관련 정보