2012-04-19 2 views
1

나는 "gtags"실행 파일을/usr/bin에 가지고 있지만 이것은 오래된 파일이다. 그런 다음 새로운 gtags를 컴파일하고 "make install"을/usr/local/bin에 넣습니다. 그런 다음/usr/bin에있는 파일을 제거했습니다. 하지만 쉘에 "gtags"라고 입력하면 "/ usr/bin/gtags"를 찾을 수 없다고 말했습니다. 하지만 나는/usr/local/bin에 "gtags"가 있고/usr/local/bin은 PATH에있다. 또한, 내 PATH에서/usr/local/bin은/usr/bin 앞에 있기 때문에 쉘이 "/ usr/bin"의 "gtags"만 검사 한 이유는 무엇입니까?Bash : 경로에서 실행 파일을 찾는 방법?

+0

실행 파일의 사용 권한을 확인하십시오. 또한 which의 OP를 확인하십시오 which Abhijit

+0

@Abhijit 허가는 755입니다. 그리고 어떤 gtags는 "/ usr/local/bin/gtags"를 보여줍니다. – jiluo

답변

3

배쉬를 사용하여 내장 된 명령 hash :

[[email protected] ~]# touch /bin/test.sh 
[[email protected] ~]# chmod 755 /bin/test.sh 
[[email protected] ~]# test.sh 
[[email protected] ~]# mv /bin/test.sh /usr/local/bin/ 
[[email protected] ~]# test.sh 
-bash: /bin/test.sh: No such file or directory 
[[email protected] ~]# hash test.sh 
[[email protected] ~]# test.sh 

이런 일이 발생하는 이유는 그것에게 그것을에 원하는 때마다 찾을 필요가 없도록 이진은 $ PATH에 bash는 "캐시"입니다 그것을 실행하십시오. 그것은 성능입니다. 인수가없는 "해시"를 실행하면 실행 된 명령, 실행 횟수 및 실행 위치를보고합니다.

+0

감사합니다! 이것은 정말 유용합니다! – jiluo

관련 문제