Question quelles différences


Quelle est la différence entre which et whereis ?


89
2017-09-12 20:12


origine


Je suis désolé mais sur mon système 10.5.8 OS X qui et whereis toujours donner les mêmes résultats. Peut être ça est une question très spécifique à OS X, puisque je suis d'accord, un résultat différent est attendu. Peut-être que whereis ne se conforme pas à ce qu'il devrait faire. Au moins les deux exemples (voir ci-dessous) ne fonctionnent pas: whereis ls et whereis php donnent toujours le même résultat que ... Quelqu'un peut-il le confirmer? Snow Leopard se comporte-t-il de la même façon? - Wolf
Ouais je sais, c'est pourquoi j'ai posé cette question. - mk12
@ Wolf ici est un exemple de which et whereis donnant des résultats différents (sur MacOS Sierra) apple.stackexchange.com/questions/259047/... - Matthew
@ mk12 je me sens comme type est supérieur Il connaît également les alias définis, les fonctions, etc. - Blauhirn


Réponses:


Que diriez-vous d'apprendre à propos de whereis et which en utilisant 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" tout en which ne recherche que des exécutables.

J'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

103
2017-09-12 20:38



ne savait pas à propos de whatis, merci. - mk12
BTW, je supprimerais la balise "osx", car cette question s'applique à toutes les variantes unix (y compris Linux, BSD, Mac OS X, ...) - Denilson Sá Maia
changé en unix - mk12
Il y a plus que ça. Sur mon système, whereis et qui renvoient différents chemins exécutables. Je peux seulement obtenir le chemin vers celui qui fonctionne avec whereis, pas celui pour which. - Jordan Reiter
@JordanReiter: Ça ne peut pas être! which montre le chemin réel. Êtes-vous sûr que le chemin indiqué par which n'est pas juste un lien symbolique vers le chemin indiqué par whereis? Peut-être que c'est un alias de shell. En bash, essayez de courir type your_cmd_here. - Denilson Sá Maia


whereis recherche les emplacements standard * nix pour une commande spécifiée.

which recherche votre PATH spécifique à l'utilisateur (qui peut inclure certains des emplacements où les recherches sont effectuées, et peut ne pas inclure d'autres emplacements); whereis ne recherche pas si vous avez ajouté à votre PATH)


20
2017-09-12 20:16



Qu'est-ce que * nix? - mk12
Unix, Linux etc. (Mac OS X appartenant à etc.)
Ohhh, haha, j'ai toujours pensé que le débordement de la pile censurait le U dans unix quand je voyais ça pour une raison quelconque. - mk12
Nan. Juste une convention assez courante d'utilisation de caractère générique créatif pour faire référence à une famille de systèmes d'exploitation similaires. ;)


Citant leurs pages de manuel:

où se trouve :

whereis localise source / binaire et   sections de 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 d'autres choses (comme les pages de manuel).


et lequel :

qui renvoie les noms de chemins de la   les fichiers qui seraient exécutés dans le   environnement actuel

Par exemple :

$ which php
/usr/bin/php

c'est-à-dire que seul l'exécutable "php".


6
2017-09-12 20:17





lequel recherche d'exécutables dans les répertoires spécifiés par la variable d'environnement PATH. Et si découvert, le chemin complet de cet exécutable sera imprimé.

$ qui ls
  / bin / ls
  $ ifconfig
  $ # Pas de sortie, car ifconfig n'existe que dans le PATH de la racine.

où se trouve rechercher des exécutables, des fichiers source et des pages de manuel à l'aide d'une base de données créée automatiquement par le système.

$ où moins
  moins: / bin / less / usr / bin / moins / usr / bin / X11 / moins /usr/share/man/man1/less.1.gz

Mais il semble que où se trouve et Localiser n'utilisez pas la même base de données. Quand j'ai installé un logiciel puis utilisé où se trouve et Localiser immédiatement pour rechercher ce logiciel. Le résultat est que où se trouve pourrait trouver des fichiers liés à ce logiciel tout en Localiser ne pouvait pas. Utilisent-ils vraiment une base de données différente? Comment fonctionne la base de données? - Et si tu refusais d'être pédant? :)


1
2018-01-24 15:09



avez-vous lancé la commande updatedb? localiser repose sur cela dans la mesure où je me souviens - Oliver M Grech