which
encuentra el ejecutable binario del programa (si está en su RUTA). man which
explica más claramente:
que devuelve los nombres de ruta de los archivos (o enlaces) que se ejecutarían en el entorno actual, si sus argumentos se hubieran dado como comandos en un shell estrictamente compatible con POSIX. Lo hace buscando en la RUTA archivos ejecutables que coincidan con los nombres de los argumentos. No sigue enlaces simbólicos.
whereis
encuentra los archivos binarios, de origen y de página de manual para un programa. Por ejemplo
$ whereis gimp
/usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz
Puede obtener detalles adicionales al pasar la salida de estos comandos como argumentos ls -l
aofile
$ ls -l $(which gimp)
lrwxrwxrwx 1 root root 8 Jun 30 19:59 /usr/bin/gimp -> gimp-2.8
$ file $(which gimp)
/usr/bin/gimp: symbolic link to gimp-2.8
locate
de hecho, encuentra todos los archivos que tienen el patrón especificado en cualquier parte de sus rutas. Puede indicarle que solo busque archivos y directorios cuyos nombres (en lugar de rutas completas) incluyan el patrón con la -b
opción, que generalmente es lo que desea, y proporciona una lista menos difícil de manejar.
locate
es rápido porque usa una base de datos binaria que se actualiza periódicamente (una vez al día, por cron
). Puede actualizarlo usted mismo para asegurarse de encontrar los archivos agregados recientemente ejecutandosudo updatedb
Una cosa más sobre locate
: no le importa si los archivos aún existen o no, así que para evitar encontrar archivos eliminados recientemente, úselo -e
. A menudo también me canalizo less
ya que la lista puede ser larga. Normalmente hago:
sudo updatedb && locate -b -e gimp | less
Aquí se explica cómo funciona el tablero de Unity : utiliza Zeitgeist para indexar archivos del sistema y aprender de los patrones de uso, y permite que otras aplicaciones utilicen estos datos, por lo que está haciendo mucho más trabajo que locate
.
type
? : P