Par exemple, s'il est passé ls
en entrée, il devrait me dire qu'il /bin/ls
s'exécutera s'il est exécuté ls
sur la ligne de commande.
la source
Par exemple, s'il est passé ls
en entrée, il devrait me dire qu'il /bin/ls
s'exécutera s'il est exécuté ls
sur la ligne de commande.
Seul un shell intégré indiquera correctement ce que le shell fera pour un nom de commande donné, car seuls les intégrés peuvent connaître pleinement les alias, les fonctions du shell, les autres intégrés, etc. N'oubliez pas: toutes les commandes ne correspondent pas en premier lieu aux fichiers exécutables.
Pour le shell Bourne Again bash
, la fonction intégrée est la type
commande:
$ type '['
[ is a shell builtin
Pour la coquille de poissonfish
type
,, le builtin fonctionne de manière similaire à bash. Pour obtenir uniquement le chemin vers un exécutable, utilisez command -v
:
$ type cat
cat is /bin/cat
$ command -v cat
/bin/cat
Pour le Korn Shell, ksh
, le intégré est la whence
commande - avec d' type
abord mis en place comme un alias ordinaire whence -v
et command
intégré avec l' -v
option équivalente à whence
:
$ whence -v ls
ls is a tracked alias for /bin/ls
Pour la Shell Z, zsh
, le intégré est la whence
commande, avec l' command
intégré avec l' -v
option équivalente à whence
et les built-ins type
, which
et where
équivalente à whence
avec les options -v
, -c
et -ca
respectivement.
$ whence ls
/bin/ls
Pour le shell TC tcsh
, la commande intégrée est la which
commande - à ne pas confondre avec une commande externe de ce nom:
> which ls
ls: aliased to ls-F
> which \ls
/bin/ls
type
est également intégré à zsh?which-2.19-6.el6.x86_64
) place un fichier de démarrage/etc/profile.d/which2.sh
. Ceci est lu par des shells non-csh, y compris zsh. Il aliaswhich
à lui-même. Donc, pour les utilisateurs de zsh en particulier, il annule la fonction intégréewhich
.Vous pouvez utiliser
which
pour cela:Il fonctionne en recherchant les
PATH
fichiers exécutables correspondant aux noms des arguments. Notez que cela ne fonctionne pas avec les alias de shell:type
, cependant, fonctionne:la source
which
n'est pas nécessairement suffisant en soi. Il ne renvoie que le premier nom trouvé dans $ PATH ... Ce nom peut être un lien symbolique, et non l' exécutable de fin de chaîne réel .which
ne renvoie pas (nécessairement) le fichier exécutable. Il renvoie le premier nom de fichier correspondant qu'il trouve dans le $ PATH (ou plusieurs fichiers nommés similaires lors de l'utilisationwhich -a
) ... L' exécutable réel peut être à plusieurs liens.which locate
/usr/bin/locate
"
file $(which locate)
/usr/bin/locate: symbolic link to /etc/alternatives/locate'
La commande qui trouve l' exécutable réel est
readlink -e
,(en conjonction avec
which
)readlink -e $(which locate)
/usr/bin/mlocate
Pour voir tous les liens intermédiaires :
la source
Tu peux essayer:
Ça me donne:
la source