환경 변수 시작 부분의 경로 구분 기호는 무엇을 합니까?

환경 변수 시작 부분의 경로 구분 기호는 무엇을 합니까?

내가 읽고있다파일사용된 프로그램에서 불필요한 시스템 호출을 TZ피하기 위해 이 변수를 설정하는 것이 좋습니다 . 다음 구문을 사용합니다.statlocaltime

TZ=:/etc/localtime

문서에 설명된 트릭은 작동하지만 콜론 없이도 작동합니다 TZ=/etc/localtime.

여기서 목적은 무엇입니까 :?

답변1

TZ이것은 변수에 있어서 특별한 일이라는 것이 밝혀졌습니다 . 이 동작은 다음과 같이 기록됩니다.man tzset(강조):

두 번째 형식은 시간대 정보를 파일에서 읽어야 함을 지정합니다.

:[filespec]

filespec이 생략되거나 해당 값을 해석할 수 없는 경우 UTC(협정 세계시)가 사용됩니다. filespec이 주어지면, 시간대 정보를 읽을 tzfile(5) 형식의 다른 파일을 지정합니다. filespec이 "/"로 시작하지 않는 경우 filespec은 시스템 시간대 디렉토리를 기준으로 합니다. 콜론을 생략하면 위의 각 TZ 형식이 시도됩니다.

다음은 뉴질랜드의 예입니다.

TZ=":Pacific/Auckland"

위의 내용을 올바르게 이해하면 둘 다 말씀하신 대로 작동하지만 TZ=:/etc/localtime생략하면 시스템은 제공한 내용을 허용하는 다양한 형식으로 구문 분석하려고 시도합니다. 나TZ=/etc/localtime:생각하다여기에는 실시간 정의가 포함됩니다(동일 매뉴얼 페이지에서 추가 내용 참조).

따라서 the를 사용하는 것은 제공하는 내용을 해석하는 데 신경쓰지 말고 직접 파일로 처리하라는 :의미입니다 .tzset

관련 정보