다른 질문에서 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
출력 하십시오 .