Ad esempio, ho git
installato sul mio sistema. Ma non ricordo dove l'ho installato, quindi quale comando è adatto per scoprirlo?
Ad esempio, ho git
installato sul mio sistema. Ma non ricordo dove l'ho installato, quindi quale comando è adatto per scoprirlo?
Risposte:
Se si trova sul tuo percorso, puoi eseguire type git
o which git
. Il which
comando ha avuto problemi a ottenere il percorso corretto (confusione tra ambiente e file dot). Per type
, puoi ottenere solo il percorso con l' -p
argomento.
Se non è sul tuo percorso, allora è meglio cercarlo con locate -b git
Troverà qualsiasi cosa chiamata 'git'. Sarà un lungo elenco, quindi potrebbe essere utile qualificarlo locate -b git | fgrep -w bin
.
locate
all'infinito (è molto veloce), ma per chi non lo sapesse, locate
è aggiornato solo come il suo aggiornamento del database più recente, che viene eseguito automaticamente ogni giorno sul mio Ubuntu. Il comando di aggiornamento è sudo updatedb
... Ha anche la locate
funzionalità regex integrata, quindi comandi come questo funzionano: locate -br "^git$"
... -b` significa limitare la ricerca al solo nome di base ... o senza il -b
, cerca il percorso completo .. Inoltre , cerca solo i percorsi in cui è stato configurato per la ricerca. Non esiste un controllo da riga di comando diverso dai filtri regex.
type
è un shell incorporato che mi dice alias e simili, ed which
è un programma esterno che mi mostra il percorso di un eseguibile ... anche se se c'è un builtin che entra nel modo in cui quel file eseguibile non verrà chiamato.
which
è che non è a conoscenza dei built-in e delle funzioni della shell (il che è rilevante quando ti stai chiedendo che cosa farà la digitazione del comando), e ne usa uno diverso $PATH
su alcuni sistemi.
Il modo standard POSIX per farlo è command -v git
. Tutti i sistemi simili a UNIX dovrebbero supportare questo.
whereis git
e ottieni il percorso per il comando.
questo è solo se git è nella tua variabile PATH, nel caso in cui non lo hai installato tramite il tuo gestore pacchetti, è più complesso e dovresti usare i comandi find
o locate
.
which
è anche incoraggiato.
Le altre risposte qui sembrano essere in gran parte orientata verso le versioni moderne di Linux, quindi se vi capita di utilizzare git
su un sistema operativo che non dispone locate
, whereis
, which
, o apropos
(come Solaris, HP-UX, ecc), quindi c'è sempre il vecchio standby find
.
find / -name git
Una delle versioni precedenti dei sistemi sopra elencati, potrebbe essere necessaria -print
un'opzione fornita a find
.
find / -name git -print
E se lo usi locate
, assicurati di eseguire updatedb
periodicamente. ( locate.updatedb
su alcuni derivati BSD)
type
; è affidabile e portatile (tranne che per i sistemi di 30 anni).
type
. :) Questo è sicuramente nel repertorio!
find
esegue una ricerca approfondita del file system partendo da qualsiasi posizione in cui viene effettuato il root. Quindi find / -name git
attraverserà l'intero sistema. Se sai che il programma è sulla tua strada di solito puoi farlo IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, anche se i filesystem Unix sono abbastanza permissivi che questo può rompersi in una varietà di modi se hanno strani caratteri nel tuo PATH
.
PATH
, la cosa corretta (con le stesse avvertenze di prima) è IFS=":"; for dir in $PATH; do find "$dir" -name git; done
. Inoltre, per ribadire, questa risposta deve essere utilizzato solo da persone che non hanno accesso a type
o which
o locate
, ad esempio, quasi nessuno. @ La risposta di Arcege è corretta.
Per ottenere il percorso del programma installato, utilizzare whereis
o which
. Se ti capita di dimenticare il suo nome, puoi usarlo apropos
con un sinonimo o una descrizione della tua utility, ad esempio apropos "version control"
troverai git
. Di seguito è ovviamente il whatis
comando di riassumere brevemente la funzione di un programma. Ciò tuttavia non si applica a tutti i programmi e le funzioni del sistema. Prova ad esempio whatis "the meaning of life, universe and everything"
.
which
comando" davvero :)