bash를 사용하여 $ PATH에서 실행 파일을 다시 해시해야합니까?


9

Bash 셸에는 실행 파일 hash -r의 내부 $PATH캐시 를 재설정 하는 기본 제공 명령 이 있습니다.

이 명령을 언제 사용해야합니까?

관련 : bash를 사용하여 $ PATH에서 실행 파일을 다시 해시하는 방법


1
... 예를 들어, 방금 재 컴파일 한 프로그램이있을 때 ... 같은 이름으로 ... 다른 경로에있을 수도 있습니다.
Hastur

@Hastur : 당신이 코멘트가 질문인지 진술인지 확실하지 않습니다. if 문, pls는 답변으로 게시합니다.
kevinarpe

답변:


7

hashbash 내장 명령입니다. 해시 테이블은 bash의 기능으로, 결과를 메모리에 캐싱하여 명령을 입력 할 때마다 $ PATH를 검색하지 못하게합니다.

따라서 캐시 / 저장된 정보가 더 이상 업데이트되거나 유효하지 않은 경우 재설정해야합니다.

유닉스 stackexchange에 대한이 멋진 답변에 대해 자세히 읽어보십시오 .


4

이전에 해당 쉘 호출에서 프로그램을 실행 한 다음 $PATH검색 목록 의 이전 디렉토리에 다른 버전의 프로그램을 설치 한 경우 새 위치에서 찾을 수 있도록 해시를 재설정해야합니다. 그렇지 않으면 캐시를 사용하여 이전 위치에서 프로그램을 찾습니다.

또한 프로그램이의 2 개 디렉토리에 설치되어 있고 해시 $PATH를 실행 한 후 이전 위치에서 사본을 제거하는 경우 해시를 재설정해야 합니다. 그렇지 않으면 해당 위치에서 해당 파일을 찾아 "No such file or directory"라고보고합니다. ).

실제로 전체 해시를 재설정 할 필요는 없습니다.

hash name

해당 이름의 캐시 항목을 강제로 업데이트하려면 다음을 수행하십시오.

hash -d name

캐시 항목 만 삭제합니다. 이들은 다른 모든 캐시 항목을 그대로 둡니다.

hash -r수정 후 사용할 필요가 없습니다 $PATH.이 작업이 완료되면 자동으로 재설정됩니다.


설치 부분과 경로의 요점에 대한 좋은 지적.
kevinarpe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.