Bash shell memiliki perintah hash -r
bawaan untuk mengatur ulang $PATH
cache internal untuk executable.
Kapan perlu menggunakan perintah ini?
Terkait: Cara mengulangi executable dalam $ PATH dengan bash
Bash shell memiliki perintah hash -r
bawaan untuk mengatur ulang $PATH
cache internal untuk executable.
Kapan perlu menggunakan perintah ini?
Terkait: Cara mengulangi executable dalam $ PATH dengan bash
Jawaban:
hash
adalah perintah built-in bash. Tabel hash adalah fitur bash yang mencegahnya dari harus mencari $ PATH setiap kali Anda mengetik perintah dengan menyimpan hasilnya di memori.
Jadi, ketika informasi yang di- cache / disimpan tidak lagi diperbarui atau valid, Anda mungkin perlu mengatur ulang.
Baca lebih lanjut tentang jawaban yang bagus ini di Unix stackexchange .
Jika sebelumnya Anda menjalankan sebuah program dalam doa shell, dan kemudian menginstal versi lain dari itu dalam direktori sebelumnya di daftar $PATH
pencarian Anda, Anda perlu mengatur ulang hash sehingga akan menemukannya di lokasi baru. Jika tidak, ia akan menggunakan cache untuk menemukan program di lokasi yang lama.
Anda juga perlu mengatur ulang hash jika program diinstal di 2 direktori di Anda $PATH
, dan Anda menghapus salinan dari lokasi sebelumnya setelah menjalankannya. Kalau tidak, itu akan mencoba menemukannya di lokasi itu, dan melaporkan "Tidak ada file atau direktori" (secara pribadi, saya pikir itu harus secara otomatis menghapus hash dan melakukan pencarian penuh ketika itu terjadi, tetapi itu tidak terjadi ketika saya mencoba ).
Perhatikan bahwa Anda sebenarnya tidak perlu mengatur ulang seluruh hash, Anda dapat menggunakan:
hash name
untuk memaksanya memperbarui entri cache hanya untuk nama itu, atau:
hash -d name
untuk menghapus hanya entri cache itu. Ini meninggalkan semua entri cache lainnya.
Anda tidak perlu menggunakan hash -r
setelah memodifikasi $PATH
, itu diatur ulang secara otomatis ketika ini selesai.