Untuk memperluas: Opsi -a melaporkan SEMUA kecocokan di PATH Anda. Itu untuk apa. Jika, seperti disebutkan, $ PATH Anda mereferensikan tempat yang sama lebih dari sekali, atau executable yang sama ada di lebih dari satu tempat, itu akan muncul beberapa kali dengan -a (tetapi tidak ketika menghilangkan opsi itu).
SuperMagic
2
Seperti petunjuknya, dan mengutip dari halaman manual, "Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument
had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same
algorithm as bash(1)."Adapun -aopsi, itu daftar semua executable dengan nama yang ditemukan di $ PATH.
Jawaban:
Periksa jalanmu. Tidak sulit untuk mendapatkan duplikat di dalamnya. Contoh:
Ini karena / bin saya adalah symlink ke / usr / bin. Sekarang:
Karena / usr / bin sekarang di $ PATH saya dua kali,
which -a
menemukan bash yang sama dua kali.sumber
Seperti petunjuknya, dan mengutip dari halaman manual,
"Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same algorithm as bash(1)."
Adapun-a
opsi, itu daftar semua executable dengan nama yang ditemukan di $ PATH.sumber
Lihatlah jalanmu:
Ada entri duplikat di jalur Anda (atau ruby dipasang beberapa kali di lokasi yang berbeda).
sumber
Mencoba
whereis -b ruby
Jika Anda mendapatkan output yang sama, maka masalahnya ada di PATH Anda.
sumber