Come posso trovare il percorso di un eseguibile in OSX


46

Esiste un comando che posso usare per trovare facilmente il percorso di un eseguibile? Sto cercando di identificarmi sulla mia macchina locale - qualcosa come pwd?

pwd identify
=> /usr/local/bin/identify

Risposte:


60

which cercherà nel tuo percorso gli argomenti che fornisci, si trova praticamente su qualsiasi BSD o SysV UNIX

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false

1
Tuttavia, il whichcomando funzionerà generalmente non è lo strumento giusto da utilizzare per eseguire questo tipo di lavoro. Consulta le Domande e risposte
slm

6
Su OSX, whichnon fornisce alcun risultato per uno script personalizzato (incluso $PATH). typelo fa.
Wisbucky,

17

Se usi l'integrato bash type, ti mostrerà tutte le posizioni (nel percorso) per un comando:

$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls

$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch

Se il comando è una funzione, elencherà la definizione della funzione:

$ type -a somefunc
somefunc is a function
somefunc ()
{
    echo "hello, world"
}

Questi esempi provengono da un sistema Ubuntu, ma i risultati saranno simili per OS X.


4
Su OSX, whichnon mostra il percorso per uno script personalizzato (che si trova in $PATH). typelo fa.
Wisbucky,

3

prova a "individuare identificare"


5
Funziona quando "che" non funziona perché l'eseguibile non è nel tuo attuale PERCORSO, ma tende anche a vomitare molte cose che non vuoi. Primo filtro percorso: "comando comando | grep bin". Usa prima "quale".
dmckee,

0

Dipende da cosa stai cercando. La maggior parte delle utility dipende dalla variabile path. Tuttavia, se ciò che stai cercando è nelle tue possibilità di percorso, non hai davvero bisogno di sapere dove si trova a meno che non ci siano più copie dello stesso eseguibile.

Questo non si applica alla maggior parte delle cose in esecuzione su OSX, perché non sono eseguite esattamente come i normali binari linux / unix. Ecco alcuni metodi per trovare cose che non sono nella tua istruzione path.

trova:

sudo find / -name <FILE>

Questo troverà tutto ciò che esiste sul file system fornito come primo argomento. Deve essere eseguito come root per cercare directory private. Supporta anche i caratteri jolly se non si è completamente sicuri del nome.

Terminale:

Se hai il file nel finder puoi aprire una finestra di terminale e rilasciarci il file. Terminale con quindi visualizzare il percorso completo del file.

Riflettore:

Abbastanza autoesplicativo. Stai donando cicli del processore per consentirgli di mantenere un indice del tuo fi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.