Par exemple, j'ai git
installé sur mon système. Mais je ne me souviens pas où je l'ai installé, alors quelle commande est appropriée pour le savoir?
terminal
system-calls
Anders Lind
la source
la source
which
commandement" en effet :)Réponses:
Si cela se trouve sur votre chemin, vous pouvez exécuter l’un
type git
ou l’ autrewhich git
. Lawhich
commande a eu des problèmes pour obtenir le chemin correct (confusion entre l'environnement et les fichiers de points). Cartype
, vous pouvez obtenir uniquement le chemin avec l'-p
argument.Si ce n'est pas dans votre chemin, alors il vaut mieux le chercher avec
locate -b git
Il trouvera quelque chose qui s'appelle 'git'. Ce sera une longue liste, alors il serait peut-être bon de la qualifierlocate -b git | fgrep -w bin
.la source
locate
sans fin (c'est très rapide), mais pour ceux qui l'ignorent, ellelocate
est aussi à jour que sa mise à jour de base de données la plus récente, qui est automatiquement exécutée quotidiennement sur mon Ubuntu. La commande de rafraîchissement estsudo updatedb
...locate
Possède également une fonctionnalité regex intégrée. Par conséquent, les commandes telles que celle-ci fonctionnent:locate -br "^git$"
... -b` signifie que la recherche est limitée au nom de base ... ou sans le nom-b
, elle recherche le chemin complet .. , il recherche uniquement les chemins que vous avez configurés pour la recherche. Il n’existe aucun contrôle de ligne de commande de cette commande autre que vos filtres regex.type
àwhich
.which
se confondre facilement .type
s'agit d'un shell intégré qui me dit des alias, etc., et d'which
un programme externe qui me montre le chemin d'accès à un exécutable ... même s'il y a un intégré qui entre dans le façon que l'exécutable ne soit pas appelé.which
c'est qu'il ne connaît pas les fonctions intégrées au shell (ce qui est pertinent lorsque vous vous demandez ce que vous ferez de la commande), et utilise un système différent$PATH
sur certains systèmes.La méthode standard pour faire cela est POSIX
command -v git
. Tous les systèmes de type UNIX devraient le supporter.la source
whereis git
et vous obtenez le chemin d'accès à la commande.c'est simplement si le git est dans votre variable PATH, au cas où vous ne l'avez pas installé via votre gestionnaire de paquets, il est plus complexe et vous devez utiliser les commandes
find
oulocate
.la source
which
est également encouragée.type
, plutôt, paswhich
. Voir Comment utiliserwhich
une commande avec alias?Les autres réponses semblent ici être orientées principalement vers des versions modernes de Linux, donc si vous arrive d'utiliser
git
sur un système d' exploitation qui ne dispose paslocate
,whereis
,which
ouapropos
(comme Solaris, HPUX, etc.), alors il y a toujours la vieille veillefind
.Parmi les anciennes versions des systèmes répertoriés ci-dessus, vous aurez peut-être besoin d'une
-print
option fourniefind
.Et si vous utilisez
locate
, assurez-vous de courirupdatedb
périodiquement. (locate.updatedb
sur certains dérivés de BSD)la source
type
; il est fiable et portable (sauf pour les systèmes vieux de 30 ans).type
. :) Ça va définitivement dans le répertoire!find
effectuez une recherche complète en profondeur du système de fichiers, à partir de l’endroit où vous le localisez. Alorsfind / -name git
traversera tout votre système. Si vous savez que le programme est sur votre chemin, vous pouvez généralement le faireIFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, bien que les systèmes de fichiers Unix soient suffisamment permissifs pour que cela puisse casser de différentes manières si vous avez des caractères étranges dans votre fichierPATH
.PATH
, la chose correcte (avec les mêmes mises en garde qu'avant) estIFS=":"; for dir in $PATH; do find "$dir" -name git; done
. En outre, pour réitérer, cette réponse ne devrait être utilisée que par des personnes qui n'ont pas accès àtype
ou,which
oulocate
presque, à personne. La réponse de @ Arcege est correcte.Pour obtenir le chemin du programme installé, utilisez
whereis
ouwhich
. Si vous oubliez son nom, vous pouvez utiliserapropos
un synonyme ou une description de votre utilitaire, par exempleapropos "version control"
, findgit
. Lawhatis
commande suivante résume bien sûr la fonction d’un programme. Cela ne s'applique toutefois pas à tous les programmes et fonctions de votre système. Essayez par exemplewhatis "the meaning of life, universe and everything"
.la source