No es la primera vez que me encuentro con una cara de alegría cuando enseño uno de estos comandos con lo que lo voy a dejar por aquí escrito, por si puedo alegrar unas cuantas caras más.
Básicamente consiste en sacar el path completo donde se encuentra un ejecutable en nuestro sistema. Si queremos, por ejemplo, buscar donde está el comando ls, escribimos:
$ which ls
o bien
$ whereis ls
El resultado de ambos es muy parecido: /bin/ls
¿Dónde está la diferencia? Pues which acepta por ejemplo el parámetro -a con el que se muestran todas las coincidencias (no únicamente la primera) o el parámetro -p que retorna 1 si ha encontrado el ejecutable o 0 si no (útil para scripts).
Mucho ojo, estos dos comandos únicamente buscan en aquellos paths definidos en $PATH. Si necesitas buscar fuera de los paths las dos opciones más comunes son:
$ locate ls
O más «a lo bruto»:
$ find / -name 'ls' -type f
Hay que tener en cuenta que locate requiere que se haya indexado el contenido en el disco duro. Por esto, es posible que alguna vez os haya ocurrido que el ejecutable no aparecía, quizás ejecutásteis el comando demasiado pronto.