Câu trả lời:
Câu trả lời phụ thuộc vào phiên bản locatebạn đang sử dụng, nhưng có một cơ hội công bằng mlocate, nó updatedbchạy nhanh bằng cách tránh thực hiện quét toàn bộ đĩa:
mlocate là một triển khai xác định vị trí / cập nhật. 'M' là viết tắt của "hợp nhất": updateb sử dụng lại cơ sở dữ liệu hiện có để tránh đọc lại hầu hết hệ thống tệp, giúp cập nhật nhanh hơn và không làm hỏng hệ thống lưu trữ nhiều.
(Cơ sở dữ liệu lưu trữ dấu thời gian của mỗi thư mục, ctimehoặc mtimetùy theo cái nào mới hơn.)
Giống như hầu hết các triển khai khác updatedb, mlocatechúng cũng sẽ bỏ qua các hệ thống tệp và đường dẫn mà nó được cấu hình để bỏ qua. Theo mặc định chẳng có gì trong mlocatetrường hợp 's, nhưng phân phối thường cung cấp một cơ sở updatedb.confmà bỏ qua các hệ thống tập tin mạng, các hệ thống tập tin ảo, vv (xem tập tin cấu hình của Debian ví dụ, đây là phương thức chuẩn trong Debian, vì vậy GNU của updatedbđược cấu hình tương tự ).
mtimecha mẹ ngay lập tức của nó.
mlocatequan tâm ctimevà mtimengụ ý rằng nó chỉ quan tâm đến việc liệu danh sách các mục trong thư mục có giống nhau không (không có tệp bị xóa hoặc thêm), có nghĩa là nó không quan tâm đến các tệp thực tế. Đúng không ?
locatekhông phải grep -R. Nó không đọc nội dung tập tin.
Ngoài việc kiểm tra thời gian sửa đổi, mlocatecũng bỏ qua các phần phụ nhất định của hệ thống tệp có nhiều tệp không quan tâm hoặc có khả năng trùng lặp, như được chỉ định trong /etc/updatedb.conf (và được mô tả trong man updateb.conf ):
updatedbtriển khai khác cũng hỗ trợ các loại trừ được định cấu hình.)