141 votes

quelles/où sont les différences

Quelle est la différence entre which y whereis ?

160voto

Denilson Sá Maia Points 11713

Que diriez-vous d'apprendre whereis y 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

En gros, whereis recherche les fichiers "potentiellement utiles", tandis que which ne recherche que les exécutables.

J'utilise rarement whereis . D'autre part, which est très utile, notamment dans les scripts. which est la réponse à la question suivante : D'où vient ce commandement ?

$  which ls
/bin/ls

$  whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2

29voto

Amber Points 601

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

which recherche dans votre PATH spécifique à l'utilisateur (qui peut inclure certains des emplacements recherchés par whereis, et peut ne pas en inclure d'autres - il peut également inclure certains emplacements que le programme whereis ne cherche pas si vous l'avez ajouté à votre PATH)

7voto

Coincoin Points 12823

En citant leurs pages de manuel :

où se trouve :

whereis localise la source/binaire et les 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).

y どの :

qui renvoie les noms de chemin des qui seraient exécutés dans l'environnement environnement actuel

Par exemple :

$ which php
/usr/bin/php

c'est-à-dire, seulement l'exécutable "php".

1voto

user192505 Points 11

どの recherche les exécutables dans les répertoires spécifiés par la variable d'environnement PATH. Et s'il est trouvé, le nom de chemin complet de cet exécutable sera imprimé.

$ which ls
/bin/ls
$ which ifconfig
$ # Pas de sortie, car ifconfig n'existe que dans le PATH de root.

où se trouve rechercher des exécutables, des fichiers sources et des pages de manuel à l'aide d'une base de données construite 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 où se trouve y localiser n'utilisent pas la même base de données. Lorsque j'ai installé un logiciel et que j'ai ensuite utilisé où se trouve y localiser immédiatement pour rechercher ce logiciel. Le résultat est que où se trouve a pu trouver certains fichiers liés à ce logiciel alors que localiser ne pouvait pas. Utilisent-ils vraiment une base de données différente ? Comment fonctionne la base de données ? --Et si vous refusiez d'être pédant :)

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