'어떤'에 대한 bash가 내장되어 있습니까?


16

최소 Fedora 설치를 테스트했습니다. 파이썬이나 노드와 같은 인터프리터의 경로를 확인하려면 일반적으로을 사용 which합니다.

I 통지는 which기본적으로 설치되지 않습니다. 패키지를 추가 할 수는 있지만이 일반적인 작업을 수행하는 데 사용할 수있는 셸이 있는지 궁금합니다.

bash 4.2를 사용하고 있습니다.


1
어떻게 든 Windows를 검색하면 여기로 왔습니다. 향후 시청자 : "where"는 지정된 파일의 경로를 알려줍니다.
고무 오리

1
이 Q를 만나는 사람이라면 누구나이 U & L Q & A를 읽어 보시기 바랍니다. 그것은 당신이 알고 싶었던 모든 것을 다룹니다 which. 왜 "뭐"를 사용하지 않습니까? 그렇다면 무엇을 사용해야합니까?
slm

답변:


26

typeBash 내장 인을 사용할 수 있습니다 .

$ type -P which
which is /usr/bin/which

설명서를 보려면 설명서 페이지 help [t]ypetype섹션을 bash참조하십시오.

( 문자열 "type"으로 시작하는 두 개의 내장에help type 대한 도움말 페이지를 인쇄합니다 .이 중 하나는 더 이상 사용되지 않으며 완전히 관련이 없습니다.


3
나는 type -a나 자신을 좋아 한다. 왜 괄호 안에 [t]ype?
glenn jackman

type -a입력 할 때 실행되는 것이 아니라 인수가 가리키는 모든 것을 인쇄합니다.
l0b0

2
이 Q를 만나는 사람이라면 누구나이 U & L Q & A를 읽어 보시기 바랍니다. 그것은 당신이 알고 싶었던 모든 것을 다룹니다 which. 왜 "뭐"를 사용하지 않습니까? 그렇다면 무엇을 사용해야합니까?
slm

목록의 첫 번째 type -a는 항상 실행되는 것입니다. 나는 Glenn과 똑같이하고 항상 사용 type -a합니다.
slm

1
type -p명령이 별칭 인 경우 경로를 표시하지 않습니다. type -P항상 명령 경로를 올바르게 표시합니다. 나는 생각한다. 허용 된 답변을 type -P@ l0b0 으로 업데이트해야합니다
dirigeant

10

당신은 사용할 수 있습니다 type또는 command -v. 출력 type은 사람이 읽을 수 있습니다. 의 출력은 command -vBash에 의해 실행될 수 있습니다.

실제로는 약간 다릅니다. typecommand명령의 해시 값을 검색합니다. 즉, 입력하면, 말을하는 것입니다 cmd, type cmd또는 command -v cmd실행됩니다 정확히 알려줍니다. 또한 별칭, Bash 함수 및 Bash 내장에서도 작동합니다 ( type -p이를 무시하고 실제 파일 만 반환 함).

whichPATH 만 검색합니다. 이것은 다음과 같은 이유로 다릅니다.

  • 동일한 이름의 별명, 함수 또는 내장이 있으면 대신 호출됩니다.
  • 명령이 마지막으로 해시 된 이후 PATH에서 이전에 추가 된 경우으로 찾을 수 which있지만 해당 명령을 실행하면 해시 된 값이 사용됩니다 (Bash에서 해시를 강제로 업데이트 할 수 있음 hash -r).

일반적으로 사람들 은 대화식으로 사용하기를 원하지 type않습니다 which. "이 명령을 실행할 때이 명령이 어디에서 나오는가?" whichPATH 조회를 실제로 수행하려는 경우 에만 사용해야 합니다.


command -v와 같습니다 ksh whence.
Henk Langeveld

1
우리는 그래서 where, whence물론도, 그리고 who, why그리고 when? 왜 what없습니까?
Hagen von Eitzen

echo 'main(){printf("what\n");}' | sudo cc -x c - -o /usr/local/bin/what
Ivan Vučica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.