.zshrc를 소싱할 때 이상한 동작

.zshrc를 소싱할 때 이상한 동작

zsh 5.0.2 (x86_64-apple-darwin12.3.0)저는 최신 MacOSX를 사용하고 있습니다. 차이가 있다면 그것도 활성화했습니다 oh-my-zsh.

.zshrc내가 파일을 얻으려고 할 때 쉘이 파일을 잃어버리는 것 같습니다.

다음 명령의 실행 결과는 내 문제를 명확하게 드러냅니다. ( ~ »그것이 내 팁이었습니다).

파일이 존재

~ » ls -l .zshrc
-rw-r--r--  1 user  staff  1882 May 16 10:43 .zshrc
~ » [[ -r .zshrc ]] && echo "Exists"
Exists

파일을 "."으로 읽지 못했습니다.

~ » . .zshrc
.: no such file or directory: .zshrc

특히 이것이 작동하는 경우 이 동작의 원인이 무엇인지 모르겠습니다.

~ » . "$(pwd)"/.zshrc
Success!

내 질문은 다음과 같습니다

왜 작동하지 않습니까 . .zshrc?

답변1

.명령은 사용자의 파일을 검색하며 $path기본적으로 현재 디렉터리에서는 검색하지 않습니다. 이것이 "$(pwd)"/.zshrc절대 경로()를 제공할 때 작동하는 이유입니다.

~에서.zsh 명령 매뉴얼:

. 파일[매개변수...]

파일에서 명령을 읽고 현재 쉘 환경에서 실행합니다.

파일에 슬래시가 포함되어 있지 않거나 PATH_DIRS가 설정된 경우 쉘은 $path 구성 요소에서 파일이 포함된 디렉터리를 찾습니다. $path에 "."가 나타나지 않으면 현재 디렉터리의 파일을 읽을 수 없습니다.

...

비교하다source주문하다:

소스 파일 [인수 ...]

'.'와 동일하지만 항상 현재 디렉터리를 검색하고, $path에 있는 디렉터리를 항상 먼저 검색합니다.

관련 정보