$HOME에 여러 디렉터리를 가질 수 있나요?

$HOME에 여러 디렉터리를 가질 수 있나요?

다음과 같은 일을 할 수 있는지 궁금합니다.

export HOME=$HOME:$HOME/.configs

이렇게 하면 ~/.configs에 모든 사용자 정의 구성을 유지할 수 있습니다.

설정할 수 있다는 것은 알고 있지만 나중에 문제가 발생할지는 잘 모르겠습니다. 이거 안전한가요? 좀 더 표준적인 방법이 있나요?

답변1

첫째, 가능하고 드문 경우 전문가가 그렇게 해야 할 수도 있지만 환경 변수의 값을 변경해서는 안 되며 HOME시스템에 의해 설정됩니다.

둘째, 의 내용은 HOME하나의 (기존) 디렉터리, 즉 홈 디렉터리에만 있어야 합니다.

무엇을 볼 것인가POSIX 라고에 대한 HOME:

HOME: 시스템은 사용자 홈 디렉토리의 경로명에 로그인할 때 이 변수를 초기화해야 합니다.

답변2

디렉토리 $HOME/.configXDG 사양의 값에 의해 결정됩니다 $XDG_CONFIG_HOME.

이론적으로 이는 구성 파일을 다른 곳에 저장하려는 경우 $XDG_CONFIG_HOME원하는 위치로 설정하기만 하면 된다는 의미입니다.

그러나 실제로는 $HOME/.config/...XDG 사양을 따르지 않고 맹목적으로 작성된 소프트웨어 인스턴스를 발견할 가능성이 높습니다. 특히 배포에 필요한 부분이 아니기 때문에 더욱 그렇습니다.

XDG 호환 애플리케이션의 경우 기본값을 가져와야 하는 다른 위치를 정의하는 일련의 디렉터리( $XDG_CONFIG_DIRS예: 콜론으로 구분 ) 를 가질 수도 있습니다 . $PATH이 값의 기본값은 이어야 합니다 /etc/xdg.

이제 당신이 물어봐야 할 다음 질문은 "좋아, 그럼 이걸 어디서 설정해야 하지 $XDG_CONFIG_HOME?"입니다.꽤 복잡해집니다.

전체적으로 .profile(또는 .bash_profile, .bashrc)에 넣을 수도 있지만 PAM을 통해 전역적으로 구성해야 할 수도 있습니다. 개인적으로 저는 아직 이것을 시도하지 않았습니다. 특히 .profileGUI 기반 로그인 환경이 솔루션 기반 솔루션과 어떻게 작동하는지 모르기 때문입니다 .

두 번째 질문은 "내 구성을 이 새 위치로 어떻게 이동합니까?"일 수 있습니다.잠재적인 문제가 가득한. 한숨을 쉬다.

여기서 가장 쉬운 옵션은 아마도 $HOME/.config원하는 위치에 대한 심볼릭 링크를 사용하는 것입니다. 이렇게 하면 설정 문제뿐 아니라 $XDG_CONFIG_DIR바로 아래에서 보고 있는 앱을 계속 사용하는 데 관련된 문제도 처리됩니다 $HOME/.config.

cd
test -d .config && mv .config .config_old
ln -s /path/to/preferred_config_dir .config

관련 정보