Apa perbedaan mendasar antara locate
whereis
dan which
perintah.
Perbedaan mendasar yang saya amati adalah bahwa locate
menempatkan semua nama file terkait di seluruh sistem file, sedangkan whereis
dan which
perintah hanya memberikan lokasi (sistem / alamat file lokal) aplikasi yang diinstal. Seberapa akurat pengamatan saya?
Bagaimana perintah-perintah ini diimplementasikan secara internal. Mengapa locate
bekerja sangat cepat dibandingkan dengan pencarian dasbor, sementara locate
harus mencari nama file yang cocok dengan string target di seluruh hierarki sistem file?
command-line
unity-dash
search
locate
Chinmaya B
sumber
sumber
type
? : Ptype
, jelaskantype
adalah perintah lain yang tampaknya (di mata saya) melakukan hal serupa dengan yang Anda sebutkan.type
perintah. Saya mencobaman type
daninfo type
.Jawaban:
which
menemukan biner yang dapat dieksekusi dari program (jika ada di PATH Anda).man which
menjelaskan lebih jelas:whereis
menemukan biner, sumber, dan file halaman manual untuk suatu program. Sebagai contohAnda bisa mendapatkan detail ekstra dengan mengirimkan output dari perintah ini sebagai argumen ke
ls -l
ataufile
locate
memang menemukan semua file yang memiliki pola yang ditentukan di mana saja di jalur mereka. Anda bisa mengatakannya hanya untuk menemukan file dan direktori yang namanya (bukan path lengkap) termasuk pola dengan-b
opsi, yang biasanya apa yang Anda inginkan, dan memberikan daftar yang kurang berat.locate
cepat karena menggunakan basis data biner yang diperbarui secara berkala (sekali sehari, olehcron
). Anda dapat memperbarui sendiri untuk memastikan file yang baru ditambahkan ditemukan dengan menjalankansudo updatedb
Satu hal lagi tentang
locate
- tidak peduli apakah file masih ada atau tidak, jadi untuk menghindari mencari file yang baru dihapus, gunakan-e
. Seringkali saya juga pipaless
karena daftar bisa panjang. Biasanya saya lakukan:Cara kerja dasbor Unity dijelaskan di sini - ia menggunakan Zeitgeist untuk mengindeks file sistem dan belajar dari pola penggunaan, dan memungkinkan aplikasi lain untuk menggunakan data ini, sehingga ia melakukan lebih banyak pekerjaan daripada
locate
.sumber
locate
. Tanda hubung menggunakan indeks yang sama sekali berbeda - lebih lambat karena melakukan lebih banyak hal (saya mengedit jawaban saya)sudo updatedb
perintah Anda sangat membantu tidak tahu itu meskipun saya menggunakan -e secara teratur.Secara sederhana
perintah mana yang mencari daftar program yang terdaftar melalui pengaturan PATH
perintah whereis juga mencari program yang tidak ada dalam pengaturan PATH
Juga menemukan file dengan nama file tetapi tidak mencari struktur direktori itu sendiri tetapi hanya database yang disiapkan oleh updatedb. Karena lokasi itu lebih cepat daripada menemukan tetapi kurang akurat. Contoh:
sumber