Por ejemplo, si se pasa ls
como entrada, debería decirme que /bin/ls
se ejecutará si se ejecuta ls
en la línea de comandos.
fuente
Por ejemplo, si se pasa ls
como entrada, debería decirme que /bin/ls
se ejecutará si se ejecuta ls
en la línea de comandos.
Solo un shell incorporado le dirá a uno correctamente lo que hará el shell para un nombre de comando dado, ya que solo los incorporados pueden conocer completamente los alias, las funciones del shell, otros incorporados, etc. Recuerde: no todos los comandos corresponden a archivos ejecutables en primer lugar.
Para el shell Bourne Again bash
, el incorporado es el type
comando:
$ type '['
[ is a shell builtin
Para la concha de pescadofish
, The type
builtin funciona de manera similar a bash. Para obtener solo la ruta a un ejecutable, use command -v
:
$ type cat
cat is /bin/cat
$ command -v cat
/bin/cat
Para el shell Korn, ksh
, el built-in es el whence
comando - con type
creado inicialmente como un alias normal para whence -v
y el command
incorporado en la -v
opción equivalente a whence
:
$ whence -v ls
ls is a tracked alias for /bin/ls
Para el Shell Z, zsh
, el built-in es el whence
mando, con el command
built-in con la -v
opción equivalente a whence
y los muebles empotrados type
, which
y where
equivalente a whence
las opciones -v
, -c
y -ca
respectivamente.
$ whence ls
/bin/ls
Por la Concha de TC, tcsh
, el built-in es el which
comando - que no debe confundirse con cualquier comando externo con ese nombre:
> which ls
ls: aliased to ls-F
> which \ls
/bin/ls
type
también está integrado en zsh?which-2.19-6.el6.x86_64
) Coloca un archivo de inicio/etc/profile.d/which2.sh
. Esto se lee mediante shells que no son csh, incluido zsh. Se aliaswhich
a sí mismo. Entonces, para los usuarios de zsh, en particular, anula las interrupciones incorporadaswhich
.Puedes usar
which
para esto:Funciona buscando
PATH
archivos ejecutables que coincidan con los nombres de los argumentos. Tenga en cuenta que no funciona con alias de shell:type
, sin embargo, funciona:fuente
which
no es necesariamente suficiente por sí solo. Solo devuelve el primer nombre encontrado en $ PATH ... Ese nombre puede ser un enlace simbólico, y no el ejecutable real de fin de cadena .which
no no (necesariamente) devolver el archivo ejecutable. Devuelve el primer nombre de archivo coincidente que encuentra en $ PATH (o múltiples archivos con nombre similar cuando se usawhich -a
) ... El ejecutable real puede estar a varios enlaces de distancia.which locate
/usr/bin/locate
``
file $(which locate)
/usr/bin/locate: symbolic link to /etc/alternatives/locate'
El comando que encuentra el ejecutable real es
readlink -e
,(junto con
which
)readlink -e $(which locate)
/usr/bin/mlocate
Para ver todos los enlaces intermedios :
fuente
Puedes probar:
Me da:
fuente