pathexpand 함수

pathexpand 함수

pathexpand 는 ~ 세그먼트로 시작할 수 있는 파일시스템 경로를 받아서, 그럴 경우 그 세그먼트를 현재 사용자의 홈 디렉토리 경로로 바꿔요.

출처: 문서

본문

pathexpand 는 ~ 세그먼트로 시작할 수 있는 파일시스템 경로를 받아서, 그럴 경우 그 세그먼트를 현재 사용자의 홈 디렉토리 경로로 바꿔요. 이 함수는 경로 문자열로만 동작하고 파일시스템 자체에는 접근하지 않아요. 따라서 심볼릭 링크 같은 파일시스템 기능은 고려할 수 없어요.

경로의 첫 세그먼트가 ~ 가 아니면 주어진 경로가 수정 없이 반환돼요.

작업(job) 인자에서 이 함수를 사용하면, 같은 구성이 서로 다른 홈 디렉토리 경로를 가진 여러 사용자에 의해 실행되거나 서로 다른 호스트 운영체제에서 사용될 때 불필요한 diff가 생길 수 있어요.

현재 사용자의 "홈 디렉토리"를 결정하는 규칙은 호스트 운영체제에 따라 달라져요.

Unix 시스템의 경우, 다음 출처가 선호 순서대로 고려돼요:

  • HOME 환경 변수
  • getent passwd 다음에 Nomad 프로세스 uid를 실행한 결과
  • sh 에서 cd && pwd 를 실행한 결과

Windows 시스템의 경우, Unix와 같은 의미의 홈 디렉토리라는 개념은 없지만, 다음 출처가 선호 순서대로 고려돼요:

  • HOME 환경 변수
  • 둘 다 설정된 경우 HOMEDRIVE 와 HOMEPATH 환경 변수
  • USERPROFILE 환경 변수

각 운영체제에 적용되는 정확한 규칙은 향후 Nomad 릴리스에서 바뀔 수 있어요.

Examples

> pathexpand("~/.ssh/id_rsa")
/home/steve/.ssh/id_rsa
> pathexpand("/etc/resolv.conf")
/etc/resolv.conf

더 알아보기 (Learn more)