¿Cuál es la diferencia entre whichy whereis?
whichy whereisuna salida diferente (en macOS Sierra) apple.stackexchange.com/questions/259047/…
typees superior. También sabe acerca de alias definidos, funciones, etc.
¿Cuál es la diferencia entre whichy whereis?
whichy whereisuna salida diferente (en macOS Sierra) apple.stackexchange.com/questions/259047/…
typees superior. También sabe acerca de alias definidos, funciones, etc.
Respuestas:
¿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
whereis, no para el which.
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.
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)
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? :)