Qual è la differenza tra whiche whereis?
whichcome whereisdare diversi output (su macOS Sierra) apple.stackexchange.com/questions/259047/…
typesuperiore. Conosce anche alias definiti, funzioni ecc.
Qual è la differenza tra whiche whereis?
whichcome whereisdare diversi output (su macOS Sierra) apple.stackexchange.com/questions/259047/…
typesuperiore. Conosce anche alias definiti, funzioni ecc.
Risposte:
Che ne dici di imparare whereise whichusare 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, whereiscerca i file "forse utili", mentre whichcerca solo gli eseguibili.
Uso raramente whereis. D'altra parte, whichè molto utile, specialmente negli script. whichè la risposta alla seguente domanda: da dove proviene 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
whereis, non quello per which.
whichmostra il percorso effettivo. Sei sicuro che il percorso indicato whichnon sia solo un collegamento simbolico al percorso indicato whereis? Forse è un alias di shell. In bash, prova a correre type your_cmd_here.
whereis cerca le posizioni * nix standard per un comando specificato.
whichcerca il PERCORSO specifico dell'utente (che può includere alcune delle posizioni in cui si trova la ricerca e potrebbe non includere altre - potrebbe anche includere alcuni luoghi che whereisnon effettuano ricerche se si fosse aggiunto al PERCORSO)
Citando le loro pagine man:
dove :
dove trova le sezioni sorgente / binarie e manuali per i file specificati.
Per esempio :
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
vale a dire, l'eseguibile "php" e alcune altre cose (come le pagine man).
e che :
che restituisce i nomi dei percorsi dei file che verrebbero eseguiti nell'ambiente attuale
Per esempio :
$ which php
/usr/bin/php
cioè, solo l'eseguibile "php".
che cerca gli eseguibili nelle directory specificate dalla variabile d'ambiente PATH. E se scoperto, verrà stampato il percorso completo di questo eseguibile.
$ which ls
/ bin / ls
$ which ifconfig
$ # Nessun output, perché ifconfig esiste solo nel PATH di root.
dove cerca eseguibili, file sorgente e pagine di manuale usando automaticamente un database creato dal sistema.
$ dove è meno
meno: / bin / less / usr / bin / less / usr / bin / X11 / less /usr/share/man/man1/less.1.gz
Ma sembra che Whereis e Locate non utilizzino lo stesso database. Quando ho installato un software e poi ho usato dov'è e individuare immediatamente per cercare questo software. Il risultato è che dove è possibile trovare alcuni file relativi a questo software mentre individuare non è possibile. Usano davvero database diversi? Come funziona il database? - Beh, che ne dici di rifiutare di essere un pedante? :)