Biasanya ketika saya memiliki program yang melakukan pemindaian disk penuh dan memeriksa semua file dalam sistem, mereka membutuhkan waktu yang sangat lama untuk dijalankan. Mengapa updateb berjalan sangat cepat dibandingkan?
sumber
Biasanya ketika saya memiliki program yang melakukan pemindaian disk penuh dan memeriksa semua file dalam sistem, mereka membutuhkan waktu yang sangat lama untuk dijalankan. Mengapa updateb berjalan sangat cepat dibandingkan?
Jawabannya tergantung pada versi yang locate
Anda gunakan, tetapi ada kemungkinan itu adil mlocate
, yang updatedb
berjalan cepat dengan menghindari melakukan pemindaian disk penuh:
mlocate adalah implementasi loc / updatedb. The 'm' adalah singkatan dari "merging": updatedb menggunakan kembali database yang ada untuk menghindari membaca ulang sebagian besar sistem file, yang membuat updatedb lebih cepat dan tidak terlalu banyak membuang cache sistem.
(Basis data menyimpan stempel waktu setiap direktori, ctime
atau mtime
, mana yang lebih baru.)
Seperti kebanyakan implementasi dari updatedb
, mlocate
itu juga akan melewati sistem file dan jalur yang dikonfigurasi untuk diabaikan. Secara default ada satu pun di mlocate
kasus 's, tetapi distribusi biasanya memberikan dasar updatedb.conf
yang mengabaikan file sistem jaringan, sistem berkas virtual dll (lihat file konfigurasi Debian misalnya, ini adalah praktek standar di Debian, sehingga GNU updatedb
adalah dikonfigurasi sama ).
mtime
induk langsungnya.mlocate
pedulictime
danmtime
yang menyiratkan itu hanya peduli apakah daftar entri direktori masih sama (tidak ada file yang dihapus atau ditambahkan), yang berarti tidak peduli dengan file aktual sendiri. Apakah itu benar ?locate
bukangrep -R
. Itu tidak membaca konten file.Selain memeriksa waktu modifikasi,
mlocate
abaikan beberapa sub pohon tertentu dari sistem file yang memiliki banyak file yang tidak menarik atau berpotensi digandakan, seperti yang ditentukan dalam /etc/updatedb.conf (dan dijelaskan dalam man updatedb.conf ):sumber
updatedb
Implementasi lain juga mendukung pengecualian yang dikonfigurasikan.)