it-swarm-eu.dev

quali / whereis differenze

Qual è la differenza tra which e whereis?

106
mk12

Che ne dici di conoscere whereis e which usando 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

Fondamentalmente, whereis cerca i file "possibilmente utili", mentre which cerca solo i file eseguibili.

Uso raramente whereis. D'altra parte, which è molto utile, specialmente negli script. which è la risposta alla seguente domanda: Da dove viene questo comando?

$  which ls
/bin/ls

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

whereis cerca le posizioni standard * nix per un comando specificato.

which cerca il PATH specifico dell'utente (che può includere alcune delle posizioni in cui vengono eseguite le ricerche e potrebbe non includerne altre; potrebbe anche includere alcune posizioni che whereis non esegue la ricerca se lo avessi aggiunto al PATH)

22
Amber

Citando le loro pagine man:

whereis :

whereis individua le sezioni source/binary e manuals per i file specificati.

Per esempio :

$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz

cioè, l'eseguibile "php" e altre cose (come le pagine man).


e che :

che restituisce il percorso dei file che verrebbero eseguiti nell'ambiente corrente

Per esempio :

$ which php
/usr/bin/php

cioè, solo l'eseguibile "php".

6
Pascal MARTIN

which cerca gli eseguibili nelle directory specificate dalla variabile di ambiente PATH. E se scoperto, verrà stampato il percorso completo di questo eseguibile.

$ quale ls
/bin/ls
$ che ifconfig
$ # Nessun output, perché ifconfig esiste solo nel PATH di root.

whereis cerca gli eseguibili, i file di origine e le pagine di manuale usando automaticamente un database creato dal sistema.

$ dove è di meno
less:/bin/less/usr/bin/less/usr/bin/X11/less /usr/share/man/man1/less.1.gz

Ma sembra che whereis e locate non usa lo stesso database. Quando ho installato un software e poi usato whereis e locate immediatamente per cercare questo software. Il risultato è che whereis potrebbe trovare alcuni file relativi a questo software mentre locate non poteva. Utilizzano davvero database diversi? Come funziona il database? - Be ', che ne dici di non essere pedante? :)

1
user192505