en bash, prefieren: type -all acommand. Y si leo el XYProblem detrás de su pregunta: tiene un comando, puede verlo a través de localizar, pero no puede ejecutarlo. luego edite RUTA, ya sea en el ~/.profilearchivo de su usuario específico , o si está convencido de que sabe qué hacer, en el /etc/profilearchivo global [ADVERTENCIA: puede romper los scripts del sistema (y posiblemente una gran parte del sistema operativo) si agrega la ruta incorrecta en el $ PATH de / etc / profile ... (por ejemplo: las rutas que contienen comandos generalmente se encuentran en otros lugares). Prefiero agregar solo al FINAL de la variable. Y por favor no ponga ::ni un . lugar en ese CAMINO.
locate utiliza una base de datos creada previamente para ubicar el archivo
locatelee una o más bases de datos preparadas por updatedb(8) y escribe nombres de archivos que coinciden con al menos uno de los PATRONES en la salida estándar, uno por línea.
updatedbcrea o actualiza una base de datos utilizada por locate(1). Si la base de datos ya existe, sus datos se reutilizan para evitar volver a leer directorios que no han cambiado.
updatedbPor lo general, se ejecuta diariamente por cron(8) para actualizar la base de datos predeterminada ( /var/lib/mlocate/mlocate.db)
whichbusca un archivo ejecutable buscándolo en los directorios de la PATHvariable de entorno.
whichtoma uno o más argumentos. Para cada uno de sus argumentos, se imprime en stdoutla ruta completa de los ejecutables que se habrían ejecutado cuando este argumento se hubiera ingresado en el indicador de comandos de la shell. Para ello, busca un archivo ejecutable o script en los directorios enumerados en la variable de entorno PATH.
"updatedb": es bueno saber que no solo Microsoft presenta nombres demasiado específicos para las cosas. (En Win32, DeleteObjectelimina un objeto GDI, CloseHandlecierra un controlador de kernel, etc. updatedbActualiza de manera similar la base de locatedatos)
user253751
"which" también es específicamente útil en el caso de que pueda tener varias versiones del mismo programa dando vueltas en varios lugares en su ruta, por lo que le indica cuál se ejecuta realmente cuando ejecuta el comando. Esto me ha sido útil antes de diagnosticar un comportamiento inesperado; por ejemplo, me ayudó a darme cuenta de que había dejado una versión instalada manualmente de una utilidad en mi sistema de modo que estaba anulando la versión instalada por el administrador de paquetes.
Carcer
11
whiches ubicar un comando ( whichdevuelve un nombre de ruta de los archivos / enlaces que se ejecutarían en el entorno actual)
locatees buscar archivos por nombre ( locatelee una o más bases de datos preparadas updatedby escribe nombres de archivos que coinciden con al menos uno de los patrones de salida standed, uno por línea)
Proporcione la atribución de sus fuentes: las descripciones en su respuesta se toman directamente de las páginas del manual para esas utilidades.
Restablece a Monica iamnotmaynard el
5
locatetoma un patrón global de forma predeterminada (también se puede usar el patrón Regex) y busca en la base /var/lib/mlocate/mlocate.dbde datos cualquier nombre de archivo que coincida con el patrón.
whiches un comando para buscar la ruta completa de un comando en los directorios interpretados por la PATHvariable de entorno.
where
ywhereis
.type -all acommand
. Y si leo el XYProblem detrás de su pregunta: tiene un comando, puede verlo a través de localizar, pero no puede ejecutarlo. luego edite RUTA, ya sea en el~/.profile
archivo de su usuario específico , o si está convencido de que sabe qué hacer, en el/etc/profile
archivo global [ADVERTENCIA: puede romper los scripts del sistema (y posiblemente una gran parte del sistema operativo) si agrega la ruta incorrecta en el $ PATH de / etc / profile ... (por ejemplo: las rutas que contienen comandos generalmente se encuentran en otros lugares). Prefiero agregar solo al FINAL de la variable. Y por favor no ponga::
ni un.
lugar en ese CAMINO.Respuestas:
¿Cuál es la diferencia entre
locate
ywhich
?locate
utiliza una base de datos creada previamente para ubicar el archivoSource localizar (1) - página de manual de Linux
Fuente actualizadab (8) - página de manual de Linux
which
busca un archivo ejecutable buscándolo en los directorios de laPATH
variable de entorno.usando el mismo algoritmo que
bash
(1).Fuente que (1) - página de manual de Linux
locate mentor
enumera el mentor, perowhich mentor
dice "no hay mentor en ..."Tiene algunos archivos con nombre
mentor
que se pueden encontrar en lalocate
base de datos.No tiene un archivo ejecutable o script nombrado
mentor
en suPATH
.fuente
DeleteObject
elimina un objeto GDI,CloseHandle
cierra un controlador de kernel, etc.updatedb
Actualiza de manera similar la base delocate
datos)which
es ubicar un comando (which
devuelve un nombre de ruta de los archivos / enlaces que se ejecutarían en el entorno actual)locate
es buscar archivos por nombre (locate
lee una o más bases de datos preparadasupdatedb
y escribe nombres de archivos que coinciden con al menos uno de los patrones de salida standed, uno por línea)fuente
locate
toma un patrón global de forma predeterminada (también se puede usar el patrón Regex) y busca en la base/var/lib/mlocate/mlocate.db
de datos cualquier nombre de archivo que coincida con el patrón.which
es un comando para buscar la ruta completa de un comando en los directorios interpretados por laPATH
variable de entorno.fuente