표준으로 지정된 사용자 프로필 위치가 있습니까?

표준으로 지정된 사용자 프로필 위치가 있습니까?

나는 ~/.foo사용자의 홈 디렉토리에 있는 파일에 대해 이야기하고 있습니다. 저는 이와 같은 파일을 읽는 프로그램을 개발 중이며 가능하다면 사용자 루트도 정리하고 싶습니다.

~/$(conf)다음과 같은 구성을 어디서 찾을 수 있는지 와 같은 POSIX 지정 변수가 있습니까 ?.emacs

답변1

POSIX

"사용자 구성" 또는 "프로필"이라는 문자열의 사양을 검색하면 결과가 없으므로 아니요라고 말하고 싶습니다. 어떤 방식으로도 이를 지정하지 않습니다.

FHS

보고 있다FHS - 파일 시스템 계층 표준이 내용은 다음과 같습니다.

애플리케이션의 사용자별 구성 파일은 사용자의 홈 디렉터리에 "."로 시작하는 파일에 저장됩니다. 문자("도트 파일"). 응용 프로그램이 여러 개의 도트 파일을 생성해야 하는 경우 해당 파일은 이름이 "."로 시작하는 하위 디렉터리에 배치되어야 합니다. 문자("점 디렉터리"). 이 경우 구성 파일은 "."으로 시작하면 안 됩니다. 특징.11.

시스템 구성/구성 가져오기

POSIX 구성 상수 목록을 살펴보는 것이 <limits.h>이와 같은 구성을 위해 제가 생각할 수 있는 유일한 곳입니다. 명령을 실행하면 getconf <var>이러한 유형의 결과가 반환됩니다.

예를 들어:

$ getconf _POSIX_CHILD_MAX
1024

하지만 정의 목록을 살펴보면 사용자의 홈 디렉터리와 관련된 내용은 아무것도 표시되지 않습니다.

답변2

약 10년 전에 정의되어 최근 채택된 이 표준은 , 기타 위치를 사용하여 사용자 구성, 캐시 및 데이터를 ~/.config/저장 하는 표준 방법 입니다.~/.cache/~/.local/share/

이는 다음과 같이 정의됩니다.환경$XDG_CONFIG_HOME, $XDG_CACHE_HOME등 의 $XDG_DATA_HOME변수 대부분의 환경에서는 여전히 사전 정의되는 경우가 거의 없지만 존재 여부를 테스트하고 아직 사전 설정되지 않은 경우 공식 기본값을 직접 설정한 다음 이러한 특정 변수를 자신의 변수에 다음과 같이 사용하는 것이 좋습니다. 구성 위치. 이 방법을 통해 잠재적인 사용자, 개발자 또는 소스 코드 연구원에게 구성, 캐싱 및 데이터에 이러한 표준 위치를 사용하고 있음을 알립니다. 그렇지 않으면 프로그래밍 언어에 따라 검색이 작동할 수도 있고 작동하지 않을 수도 있습니다 ~/.config/. $HOME/.config/및 검색 메커니즘).

if [ "x$XDG_CONFIG_HOME" = "x" ] ; then
    XDG_CONFIG_HOME="$HOME/.config"
fi
CONFIG_FILE="$XDG_CONFIG_HOME/myprog/myprog.conf"

예를 들어, 빌드 시스템에서 Golang을 사용하고 있고 다운로드한 Go 패키지를 빌드별 디렉터리에 있는 빌드 시스템에 캐시하고 싶을 수 있습니다. 다음 셸 스크립트를 사용하여 모든 것을 설정할 수 있습니다.

if [ "x$XDG_CACHE_HOME" = "x" ] ; then
    XDG_CACHE_HOME="$HOME/.cache"
fi
GO_MOD_CACHE_DIR="$XDG_CACHE_HOME/myprog/go-mod-cache"
mkdir -p "$GO_MOD_CACHE_DIR"
if [ -w "$GO_MOD_CACHE_DIR/" ] ; then
    export GOMODCACHE="$GO_MOD_CACHE_DIR"
else
    printf "WARN: GOMODCACHE directory not writeable: %s\n" "$GO_MOD_CACHE_DIR"
fi

인용하다:

관련 정보