which
e whereis
pesquisam executáveis no seu caminho - isso é uma limitação bastante significativa se você estiver procurando por algo diferente de um programa.
find
tem muita flexibilidade, mas executa a pesquisa quando você a executa sem a ajuda de índices.
locate
funciona mais rapidamente porque usa um banco de dados indexado de arquivos. O lado negativo disso é que ele não encontrará arquivos mais recentes que a última atualização do banco de dados. A atualização do banco de dados normalmente é feita regularmente por meio de um trabalho cron
.