cd 명령이 홈 디렉토리의 경로를 자동으로 찾네요.

hayarobi의 이미지

이제 비 리눅서들 눈에는 리눅스에서 방귀 좀 뀌는 사람으로 알려지게 된 수준까지 올라왔지만 오늘 처음 발견한 것이 있네요.

계정 홈 디렉토리가 아닌 다른 디렉토리에서 cd명령 후 실수로 다른 디렉토리 이름을 쳤더니 홈 아래 있는 디렉토리로 들어갔습니다.

hayarobi@hayalinux ~ $ cd works
/home/hayarobi/works
hayarobi@hayalinux ~/works $ ls
cwork  eclipseSWT  eclipsework  mdworks  otwork  workspace
hayarobi@hayalinux ~/works $ cd eclipse
/home/hayarobi/eclipse

설명을 좀 더 하자면 works디렉토리 안의 eclipseSWT로 들어가려고 cd ec까지 치고 자동완성을 시키려다 eclipseworks디렉토리때문에 eclipse까지만 완성이 되었습니다. 그걸 미처 확인하지 못 하고 엔터를 치니 홈 디렉토리 아래에 있는 eclipse디렉토리로 옮겨졌습니다.

이거 원래 cd명령에 있던 기능이었나요? 아님 bash의 부가기능인가요? 궁금해져서 맨페이지 봤는데 유저 후렌들리하지 못한 설명때문에 중간에 읽다 말았습니다. 대충 보니 CDPATH 개념과 관련된 뭔가가 있어 보이는데, 그 쪽 디렉토리는 쉘의 자동완성 목록에서는 안 나와 익숙해지지 않는 이상 갑자기 엄한 곳으로 이동하는 부작용만 일으킬 거 같습니다. (아님 몇 년만에 한 번 일어난 것이라 감수할 만한 부작용일까요?) 일단 기능을 끄는 방법을 찾아봐야겠습니다. 전 cd ~/documents 가 좋다구요.

terzeron의 이미지

csh 계열의 shell이 cdpath 변수에 설정되어 있는 디렉토리 리스트 중의 하나를 찾아서 chdir한 것으로 보입니다.

echo $cdpath해보시죠.

owlet의 이미지

말씀하신대로 CDPATH에 홈디렉토리가 설정되어있는듯합니다. CDPATH설정만 제거하시면 될것같습니다.