Sebagai contoh, saya telah git
menginstal di sistem saya. Tapi saya tidak ingat di mana saya menginstalnya, jadi perintah mana yang cocok untuk mencari tahu?
terminal
system-calls
Anders Lind
sumber
sumber
which
perintah" memang :)Jawaban:
Jika ada di jalur Anda, maka Anda dapat menjalankan salah satu
type git
atauwhich git
. Thewhich
perintah memiliki masalah mendapatkan jalur yang tepat (kebingungan antara lingkungan dan dot file). Sebabtype
, Anda bisa mendapatkan jalan dengan-p
argumen.Jika tidak ada di jalur Anda, maka yang terbaik adalah mencarinya dengan itu.
locate -b git
Ia akan menemukan apa pun yang bernama 'git'. Ini akan menjadi daftar panjang, jadi mungkin baik untuk memenuhi syaratlocate -b git | fgrep -w bin
.sumber
locate
tanpa henti (sangat cepat), tetapi bagi mereka yang tidak menyadarinya,locate
hanya sebagai pembaruan terbaru dari basis data, yang secara otomatis dijalankan setiap hari di Ubuntu saya. The Refresh perintahsudo updatedb
... Jugalocate
memiliki built-in kemampuan regex, sehingga perintah seperti ini bekerja:locate -br "^git$"
... berarti -b` membatasi pencarian untuk hanya basename ... atau tanpa-b
, ia mencari nama path penuh .. Juga , itu hanya mencari jalur yang telah Anda konfigurasikan untuk mencari .. tidak ada kontrol baris perintah ini selain filter regex Anda.type
untukwhich
.which
mudah bingung .type
adalah shell builtin yang memberi tahu saya alias dan semacamnya, danwhich
merupakan program eksternal yang menunjukkan saya jalan ke executable ... walaupun jika ada builtin yang masuk ke dalam cara yang dapat dieksekusi tidak akan dipanggil.which
adalah bahwa ia tidak tahu tentang built-in shell dan fungsi (yang relevan ketika Anda bertanya-tanya apa yang mengetik perintah akan lakukan), dan menggunakan yang berbeda$PATH
pada beberapa sistem.Cara standar POSIX untuk melakukan ini adalah
command -v git
. Semua sistem mirip UNIX harus mendukung ini.sumber
whereis git
dan Anda mendapatkan path ke perintah.itu hanya jika git ada dalam variabel PATH Anda, jika Anda telah menginstalnya bukan melalui manajer paket Anda, itu lebih kompleks dan Anda harus menggunakan perintah
find
ataulocate
.sumber
which
juga dianjurkan.type
, lebih tepatnya, tidakwhich
. Lihat Bagaimana cara menggunakanwhich
perintah alias?Jawaban lain di sini tampaknya sebagian besar diarahkan versi modern dari Linux, jadi jika Anda kebetulan menggunakan
git
pada OS yang tidak memilikilocate
,whereis
,which
, atauapropos
(seperti Solaris, HPUX, dll), maka selalu ada siaga tuafind
.Salah satu versi lama dari sistem yang tercantum di atas, Anda mungkin perlu
-print
opsi yang disediakan untukfind
.Dan jika Anda menggunakannya
locate
, pastikan Anda menjalankannyaupdatedb
secara berkala. (locate.updatedb
pada beberapa turunan BSD)sumber
type
; itu dapat diandalkan dan portabel (kecuali untuk sistem lama 30 tahun).type
. :) Itu pasti masuk dalam daftar lagu!find
melakukan pencarian mendalam-pertama pada sistem file mulai dari mana pun Anda root. Jadifind / -name git
akan melintasi seluruh sistem Anda. Jika Anda tahu bahwa programnya ada di jalur Anda biasanya dapat Anda lakukanIFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, meskipun filesystem Unix cukup permisif sehingga ini dapat memecah dalam berbagai cara jika memiliki karakter aneh di AndaPATH
.PATH
, hal yang benar (dengan peringatan yang sama seperti sebelumnya) adalahIFS=":"; for dir in $PATH; do find "$dir" -name git; done
. Juga, untuk mengulangi, jawaban ini hanya boleh digunakan oleh orang-orang yang tidak memiliki akses ketype
atauwhich
ataulocate
, yaitu, hampir tidak ada. @ Jawaban Arcege benar.Untuk mendapatkan jalur ke program yang diinstal, Anda dapat menggunakan
whereis
atauwhich
. Jika Anda lupa namanya, Anda dapat menggunakanapropos
sinonim atau deskripsi utilitas Anda, misalnyaapropos "version control"
akan menemukangit
. Mengikuti itu tentu sajawhatis
perintah untuk meringkas fungsi program secara singkat. Namun ini tidak berlaku untuk semua program dan fungsi di sistem Anda. Coba misalnyawhatis "the meaning of life, universe and everything"
.sumber