추가 읽기

추가 읽기

개인적으로 저는 유틸리티의 이식성을 높이기 위해 XDG 기본 디렉토리 사양을 고수하고 싶습니다.

그러나 그렇게 하려면 XDG_ 매개변수를 구현하지 않는 시스템에 대해 이를 다시 구현해야 합니다.

XDG 기본 디렉토리 사양에 수행할 작업이 자세히 설명되어 있으므로 이 자체로는 큰 문제가 아닙니다. 예를 들어 XDG_DATA_HOME설정되지 않았거나 비어 있는 경우에 ~/.local/share사용됩니다 .

$HOME하지만 설정되어 있지 않거나 비어 있으면 어떻게 되나요?

주어진 XDGBDS에서 최소한 시스템 전체 옵션을 존중해야 합니까(예: $HOME은 없지만 /etc/는 더 많이)무엇등. )?

솔직히 말해서 실제로 어떤 상황이 비어 있는지 경험이 거의 없어서 $HOME여기서 좋은 결정을 내리기 어렵습니다.

답변1

환경 HOME변수는 모든 형태의 사용자 로그인(대화형 및 비대화형)에 의해 설정됩니다.단일 유닉스 사양. 또한 사용자별 서비스로 설정되는 경우도 있지만스테인레스 스틸이러한 서비스는 로그인 세션 외부에서 실행되므로 이는 필요하지 않습니다.스테인레스 스틸사용자 로그인에 대한 요구 사항만 지정됩니다. 거의 언제나아니요시스템 전체 서비스 프로세스에 대해 설정됩니다.

이것XDG 기본 디렉토리 사양HOME환경 변수가 존재하지 않는 경우 어떻게 해야 하는지에 대해 침묵하십시오. 따라서 실제로 수행할 작업은 다소 의견의 문제이며 특정 도구에 적합한 작업입니다.

하나할 수 있다환경 변수가 없을 때 일부 소프트웨어가 HOME수행하는 작업을 수행하고 현재 프로세스에 대한 유효 UID 레코드의 홈 필드에 대해 시스템 계정 데이터베이스를 찾는 것으로 대체합니다. (내 nosh 도구 세트에 있는 일부 도구는 이 작업을 수행합니다. 여기에는 에서 항목을 찾으려는 도구도 포함됩니다 $HOME/.config/. 추가 읽기에서 지적한 답변의 프로그램도 마찬가지입니다.)

그러나 이번에도 cd명령의 작업을 수행할 수 있지만 오류 메시지와 함께 실패합니다.

또는 이 경우 시스템 전체 디렉터리만 읽고 프로그램의 관련 파일이 처리된다고 말할 수 있습니다.

원하지 않는다기본값은에 쓰기그러나 시스템 디렉토리. 사이에는 차이가 있습니다사용자당사물과전체 시스템물건.

추가 읽기

관련 정보