Quelle est la différence entre which
et whereis
?
which
et whereis
une sortie différente (sur macOS Sierra) apple.stackexchange.com/questions/259047/…
type
supérieur. Il connaît également des alias définis, des fonctions, etc.
Quelle est la différence entre which
et whereis
?
which
et whereis
une sortie différente (sur macOS Sierra) apple.stackexchange.com/questions/259047/…
type
supérieur. Il connaît également des alias définis, des fonctions, etc.
Réponses:
Que diriez-vous d'apprendre whereis
et d' which
utiliser whatis
?
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Fondamentalement, whereis
recherche des fichiers «éventuellement utiles», alors que which
seuls les exécutables sont recherchés.
Je l'utilise rarement whereis
. D'autre part, which
est très utile, spécialement dans les scripts. which
est la réponse à la question suivante: D'où vient cette commande?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
whereis
, pas celui pour which
.
which
montre le chemin réel. Êtes-vous sûr que le chemin indiqué par which
n'est pas simplement un lien symbolique au chemin indiqué par whereis
? Peut-être que c'est un alias de shell. En bash, essayez de courir type your_cmd_here
.
whereis
recherche les emplacements standard * nix pour une commande spécifiée.
which
recherche dans votre PATH spécifique à l'utilisateur (qui peut inclure certains des emplacements où des recherches sont effectuées, mais peut ne pas en inclure d'autres - il peut également inclure des emplacements qui whereis
n'effectuent pas de recherche si vous avez ajouté à votre PATH)
Citant leurs pages de manuel:
où est :
whereis localise les sections source / binary et les manuels pour les fichiers spécifiés.
Par exemple :
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
c'est-à-dire l'exécutable "php", et quelques autres choses (comme des pages de manuel).
et qui :
qui renvoie les noms de chemin des fichiers qui seraient exécutés dans l'environnement actuel
Par exemple :
$ which php
/usr/bin/php
c'est-à-dire, seulement l'exécutable "php".
qui recherchent des exécutables dans les répertoires spécifiés par la variable d’environnement PATH. Et s’il est au courant, le chemin complet de cet exécutable sera imprimé.
$ which ls
/ bin / ls
$ ifconfig
$ # Aucune sortie, car ifconfig n'existe que dans le chemin PATH de la racine.
Whereis recherche les exécutables, les fichiers sources et les pages de manuel à l'aide d'une base de données créée automatiquement par le système.
$ whereis less
less: / bin / less / usr / bin / less / usr / bin / X11 / less /usr/share/man/man1/less.1.gz
Mais il semble que whereis et localiser ne pas utiliser la même base de données. Lorsque j’ai installé un logiciel et que j’ai utilisé whereis et localiser immédiatement pour rechercher ce logiciel. Le résultat est que, où pourrait trouver certains fichiers liés à ce logiciel alors que localiser ne le pouvait pas. Utilisent-ils vraiment une base de données différente? Comment fonctionne la base de données? - Bon, pourquoi ne pas refuser d'être pédant? :)