불완전한 디렉토리 이름이 주어지면 cd가 자동으로 선택하는 것이 표준 동작입니까?

불완전한 디렉토리 이름이 주어지면 cd가 자동으로 선택하는 것이 표준 동작입니까?

ProjectA, 및 이라는 세 개의 ProjectB폴더 가 있습니다 ProjectC. 완료 tab하고 을 누르면 cd선택됩니다. 다른 유사한 경우에도 이것이 사실이라는 것을 알았습니다. 사전순으로 마지막 순서로 기본값이 지정됩니다(그러나 가장 최근에 변경/추가된 것일 수도 있음).cd ProjectEnterProjectC

이것이 예상되는 기본 동작입니까 cd, 아니면 실수로 여기에 뭔가를 설정한 것입니까?

저는 bash 4.3과 함께 OSX 10.10.3을 실행하고 있습니다.

답변1

나는 이 동작을 경험하지 못했습니다. 그런데 재현할 수 있었어요. 실수로 옵션을 변경했을 수도 있습니다 cdspell. 보다배쉬 참조 매뉴얼:

CD 철자법

설정된 경우 cd 명령의 디렉터리 구성 요소에서 사소한 오타를 수정합니다. 검사된 오류는 문자 전치, 누락된 문자, 너무 많은 문자입니다. 수정 사항이 발견되면 수정 사항에 대한 경로가 인쇄되고 명령이 계속됩니다. 이 옵션은 대화형 쉘에서만 사용됩니다.

나는 그것을 시도했고 항상 주어진 매개변수의 경로를 수정했습니다 cd. 가능성이 여러 개인 경우(예: ProjectA, ProjectB및 가 있는 폴더 ProjectC) 기본값은 디렉터리 순서의 마지막 항목입니다. 검사를 통과할 수 있습니다 ls -U. 예를 참조하세요:

user@host:~$ ls -Ul
total 0
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectA
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectB
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectC
user@host:~$ cd Project<tab><tab>
ProjectA/ ProjectB/ ProjectC/
user@host:~$ cd Project
ProjectC
user@host:~/ProjectC$

이 동작을 비활성화하려면 다음을 사용하십시오.

shopt -u cdspell

관련 정보