Bagaimana saya bisa menemukan path ke executable di OSX

46

Apakah ada perintah yang bisa saya gunakan untuk dengan mudah menemukan jalur ke executable? Saya mencari pengenal di mesin lokal saya - sesuatu seperti pwd?

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

Jawaban:

60

which akan mencari jalan Anda untuk argumen yang Anda berikan, itu ditemukan di hampir semua BSD atau SysV UNIX

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false
Dave Cheney
sumber
1
The whichperintah meskipun kemauan kerja umumnya bukan alat yang tepat untuk digunakan untuk melakukan jenis pekerjaan ini. Lihat U&L T&J ini: unix.stackexchange.com/questions/85249/…
slm
6
Di OSX, whichtidak memberikan hasil apa pun untuk skrip khusus (yang ada di $PATH). typetidak.
wisbucky
17

Jika Anda menggunakan bash builtin type, itu akan menunjukkan semua lokasi (di-jalan) untuk sebuah perintah:

$ 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

Jika perintah adalah fungsi, itu akan mencantumkan definisi fungsi:

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

Contoh-contoh ini dari sistem Ubuntu, tetapi hasilnya akan serupa untuk OS X.

Dennis Williamson
sumber
4
Di OSX, whichtidak menunjukkan lintasan untuk skrip khusus (yang ada di $PATH). typetidak.
wisbucky
3

coba 'temukan identifikasi'

Chopper3
sumber
5
Ini berfungsi ketika "yang" tidak akan karena executable tidak ada di PATH Anda saat ini, tetapi juga cenderung memuntahkan banyak hal yang tidak Anda inginkan. Filter jalur pertama: "temukan perintah | grep bin". Gunakan "yang" pertama.
dmckee
0

Itu tergantung pada apa yang Anda cari. Sebagian besar utilitas bergantung pada variabel path. Namun, jika apa yang Anda cari ada di jalur Anda kemungkinan Anda tidak benar-benar perlu tahu di mana itu kecuali ada banyak salinan dari executable yang sama.

Ini tidak berlaku untuk sebagian besar hal yang berjalan di OSX karena mereka tidak berjalan seperti linux / unix binaries yang normal. Berikut adalah beberapa metode untuk menemukan hal-hal yang tidak ada dalam pernyataan jalur Anda.

Temukan:

sudo find / -name <FILE>

Ini akan menemukan apa pun yang ada pada sistem file yang Anda berikan sebagai argumen pertama. Perlu dijalankan sebagai root untuk mencari direktori pribadi. Ini juga mendukung wildcard jika Anda tidak sepenuhnya yakin dengan namanya.

Terminal:

Jika Anda memiliki file di finder, Anda dapat membuka jendela terminal dan memasukkan file ke dalamnya. Terminal dengan kemudian menampilkan path lengkap ke file.

Menyoroti:

Cukup jelas. Anda menyumbangkan siklus prosesor untuk memungkinkannya menjaga indeks fi Anda

keegan2149
sumber