Lưu ý rằng đây không phải là một bản sao. Tôi đang hỏi về việc vô hiệu hóa bộ đệm, không xóa nó. Nếu bạn có một bộ đệm để xóa, thì rõ ràng nó không bị vô hiệu hóa.
Trong những dịp hiếm hoi tôi nhận thấy bộ nhớ cache của bash những thứ mà nó tìm thấy trên đường dẫn, không phải vì nó hữu ích, mà là vì nó gây khó chịu. Một ví dụ:
~ 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
Trong một vỏ khác ...
~ dc$ which which
/usr/bin/which
Tôi chắc chắn rằng bộ nhớ đệm này có ý nghĩa trở lại vào thời xa xưa khi các đĩa bị chậm và bộ nhớ đắt và bị hạn chế và do đó bạn không thể lưu trữ nhiều bộ đệm - lưu trữ một đường dẫn rẻ hơn so với lưu trữ tất cả các khối đĩa cần thiết để tìm lệnh . Nhưng những ngày này nó không mang lại lợi ích đáng chú ý nào và gây ra nhiều vấn đề hơn nó giải quyết. Đó là một hành vi sai trái, verging là một lỗi.
Và tôi thậm chí không thể tìm ra cách để vô hiệu hóa nó. Bất kỳ con trỏ?
set +h
để vô hiệu hóa băm.
/usr/bin
vẫn hoàn toàn trong bộ nhớ cache.