bash 확장을 사용하지 않고 현재 사용자의 홈 디렉토리에 대한 절대 경로?

bash 확장을 사용하지 않고 현재 사용자의 홈 디렉토리에 대한 절대 경로?

이것은 때때로 제기되는 질문이며 정말 나를 짜증나게 합니다.

때로는 현재 사용자의 홈 디렉터리를 참조해야 하는 구성 파일에 절대 경로를 제공해야 하지만 구성 파일이 bash의 물결표 또는 변수 확장을 이해하지 못합니다(따라서 ~/foobar, $HOME/foobar/home/$USER/foobar는 제외됩니다).

/proc나의 이상적인 해결책은 항상 현재 사용자의 홈 디렉토리로 확장되는 "활성" 심볼릭 링크 또는 이와 유사한 것이 있는 경우입니다 . 예를 들어, /proc/self값이 액세스하는 프로세스에 따라 달라지는 기호 링크인 가 있습니다. 항상 현재 사용자의 홈 디렉터리를 참조하는 유사한 링크가 있습니까?

이러한 상황은 조직 내 다른 사람과 공유하거나 여러 컴퓨터에서 나 자신과 공유할 재사용 가능한 구성을 작성할 때 종종 발생합니다(내 사용자 이름은 컴퓨터마다 다를 수 있음). 또한 구성 파일을 재배치 가능하게 만드는 데 장애가 될 수도 있습니다. 예를 들어, 이상적으로는 내 타르볼을 생성 $HOME하고 이를 다른 사용자의 $HOME타르볼로 추출하면 즉시 다른 사용자에 대해 내 것과 동일한 환경이 설정되지만 내 모든 심볼릭 링크 및/또는 구성 파일이 하드코딩된 경우 /home/cdfh/...당연히 작동하지 않습니다. .

모든 경우에 항상 해결 방법이 있지만 참조할 수 있으면 $HOME매우 /proc/home유용합니다.

그래서 수년 동안 불만족스러운 해결 방법을 시도한 후에 다음과 같이 묻고 싶습니다. 이 문제를 겪은 사람이 있습니까? 어떤 해결책을 찾았나요? 해결책이 있나요?

편집하다:

내 플랫폼은 Linux이지만 모든 Unix 파생 시스템을 대신하여 이 질문을 드리고 싶습니다.

"능동적" 접근 방식에 관해서는,이것들 질문관련성이 있고 결과는 내가 사용할 것입니다스크립트 파일 시스템파일을 읽을 때 더 이상 파일의 데이터를 읽지 않고 대신 표준 출력이 파일의 데이터를 대체하는 프로세스를 실행하는 파일 시스템을 만듭니다. 따라서 프로세스는 사용자의 홈 디렉터리를 읽기 위한 심볼릭 링크 역할을 하는 데이터를 출력합니다. 슬프게도 나는 아직 이것을 달성할 기회가 없었습니다.

내가 지금 이해하고 있는 올바른 용어를 사용하여 질문을 바꿔서 다음을 만들고 싶습니다.변수 심볼릭 링크HOME환경 변수를 기반으로 링크를 생성합니다 . 불행하게도 Linux는 기본적으로 가변 기호 링크를 지원하지 않지만 위와 같은 FUSE 기반 방법을 사용하여 이를 달성할 수 있습니다. 이상하게도 그들은다양한 BSD가 지원됩니다.일부Linux에 대한 지원이 추진되고 있습니다.

관련 정보