When looking for the path to an executable or checking what would happen if you enter a command name in a Unix shell, there's a plethora of different utilities ( which , type , command , whence , where , whereis , whatis , hash , etc). We often hear that which should be avoided. Why? What should we use instead?
Originally asked by Stéphane Chazelas on Stack Exchange (unix) (CC BY-SA 3.0).