명령 줄에서 응용 프로그램의 경로를 찾는 방법은 무엇입니까?


109

예를 들어 git시스템에 설치했습니다. 그러나 어디에 설치했는지 기억이 나지 않으므로 어떤 명령이 이것을 알 수 있습니까?


45
Heh, heh " which명령"참으로 :)
Tikhon Jelvis

답변:


123

경로에 있으면 type git또는을 실행할 수 있습니다 which git. which명령은 문제를 적절한 경로 (환경과 점 파일 사이의 혼란을) 받고 있었다. 의 경우 인수로 type경로를 얻을 수 있습니다 -p.

경로에 없으면 locate -b git 'git'이라는 이름을 찾으십시오. 긴 목록이 될 것이므로로 자격을 부여하는 것이 좋습니다 locate -b git | fgrep -w bin.


10
나는 locate끝없이 사용 하지만 (매우 빠르지 만) 그것을 모르는 사람들을 위해 locate최신 데이터베이스 업데이트만큼 최신 버전이며, 매일 자동으로 우분투에서 실행됩니다. 새로 고침 명령은 sudo updatedb또한 ... locate이 같은 명령이 작동하므로, 내장 된 정규식 기능 : locate -br "^git$"... -b` 수단으로 만 검색을 제한 기본 이름 ... 나없이 -b, 그것은 전체 경로 이름을 검색합니다 .. 또한 , 검색하도록 구성한 경로 만 검색합니다. 정규식 필터 외에는 이것에 대한 명령 줄 제어가 없습니다.
Peter.O

7
를 선호 type하십시오 which. which쉽게 혼동된다 .
Gilles

@Gilles, 저에게 재밌습니다. 동작은 정확히 반대입니다. type별명과 기타를 알려주는 셸 내장 which이며 실행 파일 경로를 보여주는 외부 프로그램입니다 ... 그 실행 파일이 호출되지 않는 방식.
quodlibetor

@quodlibetor 문제 which는 셸 내장 및 기능에 대해 알지 못하며 (명령을 입력하여 수행 할 작업이 궁금 할 때 관련됨 ) $PATH일부 시스템 에서 다른 기능 을 사용한다는 것 입니다.
Gilles

48

POSIX 표준 이 작업을 수행하는 방법입니다 command -v git. 모든 유닉스 계열 시스템이이를 지원해야합니다.


4
나는 이것이 1 년이 지난 것을 알고 있지만 이것은 내가 찾던 것과 정확히 일치했다. 이것이 받아 들여지는 대답이 아니라는 것에 놀랐습니다.
Akoi Meexx


13

여기에 다른 답변은 주로 리눅스의 현대 버전에 맞도록 것 같다, 그래서 당신은 사용 일 경우 git가없는 OS에 locate, whereis, which, 또는 apropos(솔라리스, HPUX, 등 등), 후 항상 오래된 대기가있다 find.

find / -name git 

위에 나열된 시스템의 이전 버전 중 하나에 -print제공되는 옵션 이 필요할 수 있습니다 find.

find / -name git -print

그리고를 사용하는 경우 주기적으로 locate실행해야합니다 updatedb. ( locate.updatedb일부 BSD 파생물에서)


8
경로에있는 프로그램의 경우type ; 신뢰할 수 있고 휴대 가능합니다 (30 년 된 시스템 제외).
Gilles

감사합니다, @Gilles. 나는 전혀 몰랐다 type. :) 확실히 레퍼토리에 가고 있습니다!
팀 케네디

그것은 그 지적 아마 가치가 find당신이 그것을 뿌리 곳에서 시작하는 파일 시스템의 전체 깊이 우선 검색을 수행합니다. 따라서 find / -name git전체 시스템을 순회합니다. 만약 당신이 프로그램이 당신의 경로에 있다는 것을 안다면 IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done, 유닉스 파일 시스템이 당신에게 이상한 문자가 있으면 이것이 다양한 방법으로 깨질 수있을만큼 충분히 허용되지만, 당신은 보통 할 수있다 PATH.
quodlibetor

실제로 내가 이전에 준 명령은 당신을 깨뜨릴 PATH것입니다 IFS=":"; for dir in $PATH; do find "$dir" -name git; done. 또한, 반복하는,이 답변은에 액세스 할 수없는 사람들에 의해 사용되어야 type하거나 which 또는 locate , 즉, 거의 아무도. @Arcege의 답변이 맞습니다.
quodlibetor

5

설치된 프로그램의 경로를 얻으려면 whereis또는을 사용하십시오 which. 이름을 잊어 버린 경우 apropos동의어 또는 유틸리티에 대한 설명과 함께 사용할 수 있습니다 ( 예 : apropos "version control"find) git. 다음은 물론 whatis프로그램의 기능을 간단히 요약하는 명령입니다. 그러나 시스템의 모든 프로그램과 기능에는 적용되지 않습니다. 예를 들어보십시오 whatis "the meaning of life, universe and everything".


2
나는 그것이 "42"로 돌아올 것이라고 생각했다! LOL.
Joe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.