이것은 복제본 이 아닙니다 . 캐시를 지우지 않고 비활성화 하는 것에 대해 묻고 있습니다. 지우는 캐시가 있으면 분명히 비활성화되지 않습니다.
드물게 경로에서 찾은 것들에 대한 bash의 캐시를 발견하는 것은 도움이되기 때문이 아니라 피가 성가시기 때문입니다. 예를 들면 :
~ dc$ export PATH=$HOME/bin:$PATH
~ dc$ cat bin/which
#!/bin/bash
echo "my which"
~ dc$ which
my which
~ dc$ rm bin/which
~ dc$ which which
-bash: /Users/dc/bin/which: No such file or directory
다른 껍질에서 ...
~ dc$ which which
/usr/bin/which
이 캐싱은 디스크가 느리고 메모리가 비싸고 제한적이며 캐시를 많이 할 수 없었던 좋은 시절에 다시 의미가 있다고 확신합니다. 경로 캐싱은 명령을 찾는 데 필요한 모든 디스크 블록을 캐싱하는 것보다 저렴합니다 . 그러나 요즘에는 눈에 띄는 이점이 없으며 해결하는 것보다 많은 문제가 발생합니다. 그것은 버그가되는 것이 특징 인 잘못된 기능입니다.
그리고 그것을 비활성화하는 방법조차 찾을 수 없습니다. 어떤 포인터?
@drhyde, 죄송합니다. 이 질문을 중복으로 표시했습니다.
—
Evgeny Vereshchagin
set +h해싱을 비활성화하는 데 사용 합니다.
Nixos에서는 bash에서 해시를 비활성화했습니다. 나는 Nixos의 일하는 방식 때문에 좋은 이유가 있다고 생각합니다. 그러나 이것이 Nixos에 실제로 필수인지 확실하지 않습니다. 나는 bash의 해시가 특정 상황에서 문제를 일으킬 수 있다고 말하고 있습니다.
—
typelogic
/usr/bin캐시에 완전히 남아있는 RAM이 많지 않은 경우 데스크톱 컴퓨터의 일반적인 경우에도 이점이 눈에 are니다 .