Lo siento, pero en mi sistema OS X 10.5.8 que y donde siempre dan los mismos resultados. Tal vez esta es una pregunta muy específica de OS X, ya que estoy de acuerdo, se espera un resultado diferente. Quizás whereis no cumple con lo que debería hacer. Al menos los dos ejemplos (ver más abajo) no funcionan: whereis ls y whereis php siempre dan el mismo resultado que ... ¿Alguien puede confirmar esto? ¿Snow Leopard se comporta igual?
@ mk12 Siento que typees superior. También sabe acerca de alias definidos, funciones, etc.
phil294
Respuestas:
121
¿Qué hay de aprender whereisy whichusar whatis?
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Básicamente, whereisbusca archivos "posiblemente útiles", mientras que whichsolo busca ejecutables.
Raramente uso whereis. Por otro lado, whiches muy útil, especialmente en scripts. whiches la respuesta a la siguiente pregunta: ¿de dónde viene este comando?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
Por cierto, eliminaría la etiqueta "osx", ya que esta pregunta se aplica a todas las variantes de Unix (incluidos Linux, BSD, Mac OS X, ...)
Denilson Sá Maia
cambiado a unix
mk12
1
Hay más que eso. En mi sistema, whereis y que devuelven diferentes rutas ejecutables. Solo puedo obtener el camino hacia el que realmente se ejecuta whereis, no para el which.
Jordan Reiter
1
@JordanReiter: ¡No puede ser! whichMuestra el camino real. ¿Estás seguro de que la ruta señalada whichno es solo un enlace simbólico a la ruta señalada whereis? Tal vez es un alias de shell. En bash, intenta correr type your_cmd_here.
Denilson Sá Maia
23
whereis busca en las ubicaciones estándar * nix un comando específico.
whichbusca en su RUTA específica del usuario (que puede incluir algunas de las ubicaciones en las que realiza búsquedas, y puede que no incluya otras; también puede incluir algunos lugares que whereisno buscan si hubiera agregado a su RUTA)
que buscan ejecutables en los directorios especificados por la variable de entorno PATH. Y si se descubre, se imprimirá la ruta completa de este ejecutable.
$ which ls
/ bin / ls
$ which ifconfig
$ # Sin salida, porque ifconfig solo existe en la RUTA de la raíz.
donde busca ejecutables, archivos de origen y páginas de manual utilizando una base de datos creada por el sistema automáticamente.
$ whereis less
less: / bin / less / usr / bin / less / usr / bin / X11 / less /usr/share/man/man1/less.1.gz
Pero parece que whereis y localizar no usan la misma base de datos. Cuando instalé un software y luego usé whereis y localizar inmediatamente para buscar este software. El resultado es que whereis podría encontrar algunos archivos relacionados con este software, mientras que localizar no pudo. ¿Realmente usan bases de datos diferentes? ¿Cómo funciona la base de datos? --Bueno, ¿qué tal si te niegas a ser pedante? :)
which
ywhereis
una salida diferente (en macOS Sierra) apple.stackexchange.com/questions/259047/…type
es superior. También sabe acerca de alias definidos, funciones, etc.Respuestas:
¿Qué hay de aprender
whereis
ywhich
usarwhatis
?Básicamente,
whereis
busca archivos "posiblemente útiles", mientras quewhich
solo busca ejecutables.Raramente uso
whereis
. Por otro lado,which
es muy útil, especialmente en scripts.which
es la respuesta a la siguiente pregunta: ¿de dónde viene este comando?fuente
whereis
, no para elwhich
.which
Muestra el camino real. ¿Estás seguro de que la ruta señaladawhich
no es solo un enlace simbólico a la ruta señaladawhereis
? Tal vez es un alias de shell. En bash, intenta corrertype your_cmd_here
.whereis
busca en las ubicaciones estándar * nix un comando específico.which
busca en su RUTA específica del usuario (que puede incluir algunas de las ubicaciones en las que realiza búsquedas, y puede que no incluya otras; también puede incluir algunos lugares quewhereis
no buscan si hubiera agregado a su RUTA)fuente
Citando sus páginas de manual:
whereis :
Por ejemplo :
es decir, el ejecutable "php" y algunas otras cosas (como páginas de manual).
y cual :
Por ejemplo :
es decir, solo el ejecutable "php".
fuente
que buscan ejecutables en los directorios especificados por la variable de entorno PATH. Y si se descubre, se imprimirá la ruta completa de este ejecutable.
donde busca ejecutables, archivos de origen y páginas de manual utilizando una base de datos creada por el sistema automáticamente.
Pero parece que whereis y localizar no usan la misma base de datos. Cuando instalé un software y luego usé whereis y localizar inmediatamente para buscar este software. El resultado es que whereis podría encontrar algunos archivos relacionados con este software, mientras que localizar no pudo. ¿Realmente usan bases de datos diferentes? ¿Cómo funciona la base de datos? --Bueno, ¿qué tal si te niegas a ser pedante? :)
fuente