다른 질문에서 OS X를 사용하고 있다고 생각합니다. OS X의 기본 HFS + 파일 시스템은 대소 문자를 구분하지 않습니다. 동일한 디렉토리에 "abc"와 "ABC"라는 두 파일을 가질 수 없으며 액세스하려고합니다. 두 이름 중 하나가 같은 파일로 이동합니다. Cygwin에서 또는 대소 문자를 구분하지 않는 파일 시스템 (예 : FAT32 또는 ciopfs ) 에서 동일한 상황이 발생할 수 있습니다.
grep실제 실행 파일 이므로 파일 시스템 (의 디렉토리 PATH) 에서 조회됩니다 . 경우에 쉘 외모 /usr/bin중 하나에 대해 grep또는 GREP그것이 발견 할 것이다 grep실행.
셸 내장은 파일 시스템에서 조회 되지 않습니다. 내장되어 있기 때문에 셸 자체의 (대소 문자 구분) 문자열 비교를 통해 액세스됩니다.
당신이 겪고있는 것은 흥미로운 사건입니다. 하지만 cd대소 민감하게 액세스되는 내장이있다, CD실행으로 발견된다 /usr/bin/cd. cd실행 꽤 쓸모가 : 때문에 cd현재 쉘 실행 환경에 영향을 미치는, 그것은 항상 쉘로 제공되는 일반 내장 ,하지만이 cd실행 POSIX을 위하여 자체에 대한 디렉토리를 변경하고 즉시 종료 어쨌든이 주변 쉘을 떠나, 어디서 시작했는지
당신은 type내장으로 이것들을 시험해 볼 수 있습니다 :
$ type cd
cd is a shell builtin
$ type CD
CD is /usr/bin/CD
type해당 명령을 실행할 때 쉘이 수행 할 작업을 알려줍니다. 실행 cd하면 내장 기능에 액세스하지만 CD실행 파일을 찾습니다. 다른 내장의 경우 내장 및 실행 파일이 합리적으로 호환 echo되지만 (try ) cd불가능합니다.
alias GREP하거나which GREP출력 하십시오 .