![왜냐하면설명서가 잘못됐네요.](https://linux55.com/image/125900/%EC%99%9C%EB%83%90%ED%95%98%EB%A9%B4%EC%84%A4%EB%AA%85%EC%84%9C%EA%B0%80%20%EC%9E%98%EB%AA%BB%EB%90%90%EB%84%A4%EC%9A%94..png)
Bourne Again 쉘 매뉴얼은 다음과 같이 말합니다:cd dir
[...] 모든 디렉토리 이름이CDPATH
검색됩니다.목차. […] 만약에목차슬래시(/
)로 시작한 다음CDPATH
사용하지 않은 채로 두십시오.
Z 쉘 매뉴얼에는 다음과 같이 나와 있습니다.cd arg
그렇지 않은 경우아르기닌슬래시로 시작하여 지정된 디렉터리로 변경을 시도합니다.아르기닌.만약에아르기닌슬래시로 시작하지 않으면 동작은 현재 디렉토리가
.
쉘 인수에 포함된 디렉토리 목록에 나타나는지 여부에 따라 달라집니다cdpath
. [...].
존재하는cdpath
경우cdpath
검색은 엄격하게 순차적이므로.
적절한 지점에서만 시도됩니다.
POSIX 일반 쉘 매뉴얼에는 다음과 같이 나와 있습니다 CDPATH
.
in 명령PATH
으로 시작하지 않는 디렉토리 와 동일하게 작동합니다 ./
cd
Debian Almquist 쉘 매뉴얼은 다음과 같이 말합니다 cd
:
[...] 쉘 변수가 설정되고 디렉토리 이름이 슬래시로 시작하지 않으면 나열된 디렉토리 중에서 지정된 디렉토리가CDPATH
검색됩니다 .CDPATH
93년 Korn 쉘 매뉴얼에는 다음과 같이 나와 있습니다.cd arg
만약에아르기닌로 시작하면 /
검색 경로가 사용되지 않습니다. 그렇지 않으면 경로의 각 디렉터리가 검색됩니다.아르기닌.
MirBSD Korn 쉘 매뉴얼은 다음과 같이 말합니다 CDPATH
:
in 명령PATH
으로 시작하지 않는 디렉토리 와 동일하게 작동합니다 ./
cd
'93 Korn 쉘을 제외하고는 실제로는 그렇지 않습니다.
% 내보내기 CDPATH=/tmp: % mkdir wibble /tmp/wibble % ksh93 -c 'cd ./wibble' /tmp/와이블 % 대시 -c 'cd ./wibble ;password' /홈/JdeBP/wibble % bash -c 'cd ./wibble ;password' /홈/JdeBP/wibble % mksh -c 'cd ./wibble ;password' /홈/JdeBP/wibble % lksh -c 'cd ./wibble ;비밀번호' /홈/JdeBP/wibble % posh -c 'cd ./wibble ;password' /홈/JdeBP/wibble % zsh -c 'cd ./wibble ;password' /홈/JdeBP/wibble %
/tmp/./wibble
존재하고 디렉토리이지만 '93 Korn 쉘만 검색 CDPATH
하고 찾습니다. 나머지는 그렇지 않습니다.
왜 안 돼?
답변1
왜냐하면설명서가 잘못됐네요.
93년 Korn 쉘도 잘못되었습니다.
1997년단일 유닉스 사양설명하다:
디렉토리 피연산자가/
슬래시( ) 문자로 시작하지 않고 첫 번째 구성요소가 점 또는 점-점이 아닌 경우cd
검색은 다음과 같습니다 .목차CDPATH
나열된 순서대로 변수에 지정된 각 디렉터리를 기준으로 합니다 .
2016년단일 유닉스 사양같은 것을 말하는 다른 약간 중복되는 방법:
3. 만일목차피연산자는 <슬래시> 문자로 시작하고curpath
피연산자로 설정한 후 7단계로 진행합니다.4. 첫 번째 구성요소인 경우목차피연산자가 점 또는 점-점인 경우 6단계를 계속합니다.
[…]
6.
curpath
디렉토리 피연산자로 설정합니다.
매뉴얼에는 .
and 에 대한 부분이 언급되어 있지 않지만 ..
'93 Korn 쉘을 제외한 모든 쉘이 실제로 수행하는 작업은 매뉴얼에 다음과 같이 나와 있음에도 불구하고입니다.
% 내보내기 CDPATH=/tmp: % lksh -c 'CD 스윙' /tmp/와이블 % 대시 -c 'CD 스윙' /tmp/와이블 % posh -c 'CD 스윙' /tmp/와이블 % bash -c 'CD 스윙' /tmp/와이블 % mksh -c 'CD 스윙' /tmp/와이블 % zsh -c 'CD 스윙 비밀번호' /tmp/와이블 %