A diferença entre which
e whereis
não é exatamente "executável" vs "binário".
which
mostra o caminho completo de um comando, mas a busca se restringe aos diretórios que estão na variável de ambiente PATH
(que pode inclusive ter diretórios que whereis
não procura).
Já whereis
procura também por outros arquivos relacionados, como fontes e man pages ("manuais"), independente do que está no PATH
.
Exemplo:
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2