2017-09-22 12 views
2

방금 ​​리눅스를 배웠고 "The Linux Command-Line"이라는 책을 읽었습니다. 그것은 말합니다 :cd가 작동하는 Linux. 하지만 cd는 bash의 내장 명령입니다.

cd은 bash의 내장 명령입니다.

which cd으로는 찾을 수 없습니다. 하지만 어떻게 든 내 컴퓨터에서 잘 작동했습니다.

$ which cd 
/usr/bin/cd 

CentOS를 사용하고 있기 때문입니까?

+1

예. 그것은'which'를 실행할 때 여러분의 시스템과 쉘에 의존 할 것입니다. – JNevill

+0

'/ usr/bin/cd/tmp'을 시도 했습니까? 'pwd'? 너는 놀랄 것이다. 그러나 POSIX는 (원하지 않는)'cd' 바이너리를 요구할 것이라는 소문이 돌았습니다! –

+3

관련 ([unix.se]에서) : ['cd'외부 명령의 요점은 무엇입니까?] (https://unix.stackexchange.com/questions/50058/what-is-the-point-of- the-cd-external-command) –

답변

5

쉘 내장형의 경우 man 대신 help을 사용하십시오. help cd은 사용 정보를 제공합니다. which은 바이너리 만 찾기 때문에 오해의 소지가 있습니다. type을 사용하십시오.

$ type cd 
cd is a shell builtin 

$ help cd 
cd: cd [-L|[-P [-e]] [[email protected]]] [dir] 
    Change the shell working directory. 
... 

지금은 일이 같은 시스템에 쓸모없는 바이너리 */usr/bin/cd이있다. 쉘이 내장 된 쉘이 그것을 대신하기 때문에, 그리고 바이너리가 부모 쉘의 디렉토리를 변경하는 것이 불가능하기 때문에 둘 다 쓸모가 없습니다. 그것을 사용하려고하면 아무것도하지 않는다는 것을 알게 될 것입니다.

/dir1$ /usr/bin/cd /dir2 
/dir1$ 
+0

그것은별로 쓸모가 없습니다. 이것은 디렉토리가 존재하고'+ x' 권한이 있는지를 결정하는 데 사용될 수 있습니다. –

+0

@CharlesDuffy 당신은'test -d'와'test -x'를 사용할 수 있습니다. (나는 당신이 그것을 알고 있다는 것을 압니다.) – hek2mgl

+1

@ hek2mgl, 물론. * 독점적 인 용도로 사용했다고 말하지 않았습니다. –