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

46

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

pwd identify
=> /usr/local/bin/identify
Codebeef
la source

Réponses:

60

which cherchera dans votre chemin les arguments que vous fournissez, il est trouvé sur à peu près tout BSD ou SysV UNIX

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false
Dave Cheney
la source
1
La whichcommande qui fonctionnera n’est généralement pas le bon outil à utiliser pour effectuer ce type de travail. Consultez les questions et réponses de U & L: unix.stackexchange.com/questions/85249/…
slm
6
Sous OSX, whichne donne aucun résultat pour un script personnalisé (inclus $PATH). typeEst-ce que.
Wisbucky
17

Si vous utilisez la commande intégrée bash type, elle vous montrera tous les emplacements (dans le chemin) d'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, elle listera la définition de la fonction:

$ 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.

En pause jusqu'à nouvel ordre.
la source
4
Sous OSX, whichn’affiche pas le chemin d’un script personnalisé (qui est dans $PATH). typeEst-ce que.
Wisbucky
3

essayez 'localiser identifier'

Chopper3
la source
5
Cela fonctionne quand "qui" ne veut pas parce que l'exécutable ne se trouve pas dans votre PATH actuel, mais a aussi tendance à cracher beaucoup de choses que vous ne voulez pas. Premier filtre de chemin: "commande de localisation | bac de grep". Utilisez "qui" en premier.
dmckee
0

Cela dépend de ce que vous recherchez. La plupart des utilitaires dépendent de la variable de chemin. Cependant, si ce que vous recherchez se trouve dans votre chemin, il est peu probable que vous sachiez exactement où il se trouve, à moins que plusieurs copies du même exécutable ne soient disponibles.

Cela ne s'applique cependant pas à la plupart des applications OSX, car elles ne sont pas exécutées comme les binaires linux / unix normaux. Voici quelques méthodes pour rechercher des éléments qui ne figurent pas dans votre déclaration de chemin.

trouver:

sudo find / -name <FILE>

Cela 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 des répertoires privés. Il prend également en charge les caractères génériques 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. Terminal avec ensuite affiche le chemin complet du fichier.

Projecteur:

Assez explicite. Vous donnez des cycles de processeur pour lui permettre de garder un index de votre fi

keegan2149
la source