Linux에서 위치와 위치의 차이점


27

Linux locatewhichLinux 의 차이점은 무엇입니까 ?

내가 사용하면 왜 locate mentor모든 멘토가 나열되지만 내가 사용 which mentor하면 "멘토 없음"이라고 표시 됩니다. 이것은 무엇을 의미합니까?



이 또한 wherewhereis.
Jan Tojnar

bash에서 선호하는 것은 : type -all acommand. 그리고 당신의 질문 뒤에 XYProblem을 읽으면 명령이 있습니다 .loc을 통해 볼 수는 있지만 실행할 수 없습니까? 그런 다음 특정 사용자의 ~/.profile파일 또는 수행 할 작업을 알고 있다고 확신하는 경우 전역 /etc/profile파일 에서 PATH를 편집 하십시오. [경고 : 잘못된 경로를 추가하면 시스템 스크립트 (및 많은 OS)가 손상 될 수 있습니다. / etc / profile ...의 $ PATH (예 : 일반적으로 다른 곳에있는 명령을 포함하는 경로) 변수의 끝에 만 추가하는 것이 좋습니다. 그리고 그 경로 에 ::또는 다른 .곳을 두지 마십시오 .
Olivier Dulac

답변:


45

차이점은 무엇이며 locate그리고 which?

locate 이전에 구축 된 데이터베이스를 사용하여 파일을 찾습니다.

locateupdatedb(8)에서 준비한 하나 이상의 데이터베이스를 읽고 하나 이상의 PATTERN과 일치하는 파일 이름을 한 줄에 하나씩 표준 출력에 씁니다.

소스 locate (1)-Linux 매뉴얼 페이지

updatedblocate(1)에서 사용하는 데이터베이스를 작성하거나 업데이트합니다 . 데이터베이스가 이미 존재하면 변경되지 않은 디렉토리를 다시 읽지 않도록 데이터가 재사용됩니다.

updatedb일반적으로 cron기본 데이터베이스를 업데이트하기 위해 (8) 매일 실행됩니다 ( /var/lib/mlocate/mlocate.db)

소스 업데이트 b (8)-Linux 매뉴얼 페이지


whichPATH환경 변수 의 디렉토리에서 실행 파일을 검색하여 실행 파일을 찾습니다 .

which하나 이상의 인수를 취합니다. 각 인수에 stdout대해이 프롬프트가 쉘 프롬프트에서 입력되었을 때 실행 된 실행 파일의 전체 경로로 인쇄 합니다. 환경 변수에 나열된 디렉토리에서 실행 파일 또는 스크립트를 검색하여이를 수행합니다 PATH.

bash(1) 과 동일한 알고리즘을 사용합니다 .

소스 which (1)-Linux 매뉴얼 페이지


locate mentor멘토를 나열하지만 which mentor"멘토 없음 ..."

그게 무슨 뜻이야?

데이터베이스 mentor에서 찾을 수있는 일부 파일 이 있습니다 locate.

당신은라는 이름의 실행 파일 또는 스크립트가없는 mentor당신에를 PATH.


2
"updatedb"-지나치게 특정한 이름이 아닌 것은 Microsoft만이 아닙니다. (Win32에서는 DeleteObjectGDI 개체를 삭제하고 CloseHandle커널 핸들을 닫습니다. 마찬가지로 DB를 updatedb업데이트합니다. locate)
user253751

"which"는 경로의 여러 위치에서 동일한 프로그램의 여러 버전이 작동하는 경우 특히 유용하므로 명령을 실행할 때 실제로 실행되는 버전을 알려줍니다. 이것은 예기치 않은 동작을 진단하는 데 도움이되었습니다. 예를 들어, 수동으로 설치된 유틸리티 버전을 시스템에 남겨두고 패키지 관리자가 설치 한 버전을 재정의했음을 알 수있었습니다.
Carcer

11

which명령을 찾는 which것입니다 (현재 환경에서 실행될 파일 / 링크의 경로 이름을 반환합니다)

locate파일 이름을 찾을 수있다 ( locate의해 제조 된 하나 이상의 데이터베이스를 읽어 updatedb와 standered 출력 패턴 중 적어도 하나의 라인 당 하나의 일치하는 파일 이름을 기입)


2
귀하의 출처에 대한 귀속을 제공하십시오. 귀하의 답변에 대한 설명은 해당 유틸리티의 맨 페이지에서 직접 가져옵니다.
복원 Monica Monica iamnotmaynard

5

locate기본적으로 glob 패턴을 취하고 (정규 패턴도 사용 가능) 패턴과 /var/lib/mlocate/mlocate.db일치하는 파일 이름을 데이터베이스 에서 검색합니다 .

whichPATH환경 변수에 의해 해석되는 디렉토리에서 명령의 전체 경로를 검색하는 명령입니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.