Linux: Cómo saber dónde está instalado un programa

En ocasiones nos podemos encontrar que después de instalar un programa no sepamos la ubicación donde se encuentra instalado.

Para saber dónde está instalado un programa, disponemos de varios métodos que veremos en este post.

1)  Cómo saber dónde está instalado un programa: which


El comando which, realiza una búsqueda del binario que estamos buscando en la variable de entorno del sistema: PATH

Por ejemplo:

Si ejecutamos:

[root@LINUX1 ~]# which httpd
/usr/sbin/httpd

 
Vemos que el comando which, devuelve la ruta completa de donde está el binario.

Según el ejemplo, nos devuelve la ruta donde está situado el binario: httpd.

Recordemos que el comando which, busca en el interior de la variable de entorno PATH.

Podemos ver las rutas definidas en la variable de entorno PATH de la siguiente forma:

[root@LINUX1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

Si quieres trabajar con variables de entorno en Linux, puedes revisar este post:


Por defecto, el comando which, solo nos muestra el primer binario encontrado en las rutas definidas en la variable de entorno PATH del sistema.

Si queremos que el comando which nos muestre el binario en todas las rutas especificadas en la variable PATH, utilizaremos el parámetro -a.

Ejemplo con y sin el parámetro: -a:

[root@LINUX1 ~]# which -a reboot
/sbin/reboot
/usr/bin/reboot

 

2)  Cómo saber dónde está instalado un programa: whereis


El comando whereis es muy similar al comando anterior: which.

El comando whereis, también restringe sus búsquedas a las rutas definidas en la variable de entorno PATH.

La diferencia entre el comando whereis y which, es que whereis no solo muestra binarios ejecutables si no que muestra el resto de ficheros que coinciden con la cadena buscada.

Ejemplo de ejecución:

[root@LINUX1 ~]# whereis reboot 
reboot: /usr/bin/reboot /sbin/reboot /usr/share/man/man2/reboot.2.gz /usr/share/man/man8/reboot.8.gz
Sin embargo, podemos hacer que whereis funcione igual que which, especificando el parámetro -b.

Con whereis -b, solo nos mostrará los binarios ejecutables.

Este sería el equivalente a ejecutar: which -a reboot, utilizando el comando: whereis

[root@LINUX1 ~]# whereis -b reboot
reboot: /usr/bin/reboot /sbin/reboot

3)  Cómo saber dónde está instalado un programa: find


Los comandos anteriores (which y whereis) restringen la búsqueda en las rutas especificadas en la variable de entono de sistema: PATH.

Si el programa instalado, no ha guardado el binario ejecutable dentro de estas rutas, los comandos which y whereis, no mostraran la ubicación.

No es habitual que esto suceda, ya que las rutas definidas en la variable de entorno PATH incluyen los directorios de binarios del sistema. 

Veamos cómo realizar una búsqueda de un binario especificando la ruta. 

Con el comando find, podemos realizar búsquedas de ficheros a partir de una ruta especificada.

Veamos un ejemplo:

[root@LINUX1 ~]# find / -executable -type f -iname "httpd*"
/usr/local/psa/admin/sbin/httpd_modules_ctl
/usr/local/psa/admin/sbin/httpdmng
/usr/sbin/httpd
/usr/sbin/httpd.worker
/usr/sbin/httpd.event
/etc/rc.d/init.d/httpd
 

Veamos los parámetros utilizados:

A continuación del comando find, encontramos: "/", significa que la búsqueda de ficheros se iniciará a partir de la raíz del sistema.

Con los parámetros: "-executable -type f", indicamos que busque ficheros ejecutables (ficheros con permisos de ejecución)

Con el parámetro: -iname, especificamos la cadena a buscar, ignorando distinción entre mayúsculas y minúsculas.

--

Podemos encontrar más ejemplos sobre el funcionamiento del comando find de Linux, en el siguiente enlace:

Linux: Buscar ficheros, directorios con find (SYSADMIT.com)

8 comentarios: