¿Cuál es la diferencia entre which
y whereis
?
which
y whereis
una salida diferente (en macOS Sierra) apple.stackexchange.com/questions/259047/…
type
es superior. También sabe acerca de alias definidos, funciones, etc.
¿Cuál es la diferencia entre which
y whereis
?
which
y whereis
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
y which
usar 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, whereis
busca archivos "posiblemente útiles", mientras que which
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?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
whereis
, no para el which
.
which
Muestra el camino real. ¿Estás seguro de que la ruta señalada which
no 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
.
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 que whereis
no buscan si hubiera agregado a su RUTA)
Citando sus páginas de manual:
whereis :
whereis localiza secciones fuente / binarias y manuales para archivos específicos.
Por ejemplo :
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
es decir, el ejecutable "php" y algunas otras cosas (como páginas de manual).
y cual :
que devuelve los nombres de ruta de los archivos que se ejecutarían en el entorno actual
Por ejemplo :
$ which php
/usr/bin/php
es decir, solo el ejecutable "php".
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? :)