91 votes

Comment trouver le chemin d'accès à un exécutable sous OSX ?

Existe-t-il une commande que je peux utiliser pour trouver facilement le chemin d'un exécutable ? Je cherche à l'identifier sur ma machine locale - quelque chose comme pwd ?

pwd identify
=> /usr/local/bin/identify

112voto

Dave Cheney Points 18132

which cherchera dans votre chemin les arguments que vous fournissez, il se trouve sur à peu près tous les UNIX BSD ou SysV.

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false

1 votes

En which Le commandement bien que le travail de volonté n'est généralement pas le bon outil à utiliser pour faire ce type de travail. Voir ce Q&R de U&L : unix.stackexchange.com/questions/85249/

7 votes

Sur OSX, which ne donne aucun résultat pour un script personnalisé (qui se trouve en $PATH ). type fait.

37voto

jason saldo Points 5036

Si vous utilisez l'utilitaire bash type il vous montrera tous les emplacements (dans le chemin) pour une commande :

$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls

$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch

Si la commande est une fonction, la définition de la fonction sera affichée :

$ type -a somefunc
somefunc is a function
somefunc ()
{
    echo "hello, world"
}

Ces exemples proviennent d'un système Ubuntu, mais les résultats seront similaires pour OS X.

4 votes

Sur OSX, which n'affiche pas le chemin d'accès à un script personnalisé (qui est en $PATH ). type fait.

4voto

Chopper3 Points 99341

Essayez "localiser identifier".

6 votes

Cela fonctionne quand "which" ne le fait pas parce que l'exécutable n'est pas dans votre PATH actuel, mais a aussi tendance à cracher beaucoup de choses que vous ne voulez pas. Premier filtre de chemin : "locate command | grep bin". Utilisez d'abord "which".

1voto

keegan2149 Points 71

Cela dépend de ce que vous recherchez. La plupart des utilitaires dépendent de la variable path. Cependant, si ce que vous cherchez se trouve dans votre chemin, il y a de fortes chances que vous n'ayez pas vraiment besoin de savoir où il se trouve, à moins qu'il y ait plusieurs copies du même exécutable.

Cela ne s'applique pas à la plupart des choses qui tournent sous OSX, car elles ne sont pas exécutées comme des binaires linux/unix normaux. Voici quelques méthodes pour trouver les choses qui ne sont pas dans votre déclaration de chemin.

trouver :

sudo find / -name <FILE>

Ceci trouvera tout ce qui existe sur le système de fichiers que vous donnez comme premier argument. Il doit être exécuté en tant que root pour rechercher les répertoires privés. Il supporte également les jokers si vous n'êtes pas complètement sûr du nom.

Terminal :

Si vous avez le fichier dans le Finder, vous pouvez ouvrir une fenêtre de terminal et y déposer le fichier. Le terminal affichera alors le chemin d'accès complet au fichier.

Spotlight :

Plutôt explicite. Vous donnez des cycles au processeur pour lui permettre de garder un index de vos fichiers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X