Locate Linux là lệnh dùng để tìm kiếm đường dẫn file và thư mục nhanh chóng bằng cách tra cứu trong cơ sở dữ liệu đã được lập chỉ mục sẵn thay vì quét trực tiếp toàn bộ hệ thống file như find. Trong bài viết này, mình sẽ cùng bạn tìm hiểu chi tiết công dụng và hướng dẫn cách sử dụng lệnh locate để tìm kiếm file hiệu quả, nhanh chóng.
Những điểm chính
- Khái niệm: Hiểu rõ khái niệm và cơ chế hoạt động dựa trên cơ sở dữ liệu chỉ mục của
locate, giúp tìm kiếm file nhanh chóng. - Các tùy chọn phổ biến: Nắm được bảng tra cứu các tùy chọn quan trọng để tinh chỉnh kết quả tìm kiếm.
- Hướng dẫn cài đặt: Biết cách cài đặt và kích hoạt
locatetrên các bản phân phối Linux phổ biến như Ubuntu/Debian và CentOS/Fedora. - 6 ví dụ sử dụng thực tế: Thành thạo các cách tìm kiếm hiệu quả, từ tìm chính xác tên, giới hạn kết quả đến kết hợp với
grepđể phân tích log. - Cách quản lý database: Học cách cập nhật cơ sở dữ liệu thủ công, cấu hình quét nâng cao và tự động hóa quá trình này để đảm bảo kết quả luôn mới nhất.
- Câu hỏi thường gặp: Giải đáp các thắc mắc thường gặp xoay quanh lệnh locate trong Linux.
Lệnh locate Linux là gì?
locate là lệnh được sử dụng để tìm kiếm vị trí của file và thư mục với tốc độ truy xuất dữ liệu nhanh chóng trong Linux. Khác với lệnh find khi phải quét trực tiếp qua cấu trúc thư mục thực tế tại thời điểm tìm kiếm, lệnh locate hoạt động dựa trên việc tra cứu một cơ sở dữ liệu chỉ mục. File cơ sở dữ liệu này chứa danh sách toàn bộ các file có trong hệ thống và được cập nhật định kỳ tự động.
Nhờ cơ chế này, lệnh locate trả về kết quả gần như tức thì, giúp tiết kiệm đáng kể tài nguyên hệ thống so với lệnh find. Tuy nhiên, nhược điểm của locate là nếu file mới được tạo ra mà cơ sở dữ liệu chưa kịp cập nhật, locate sẽ không thể tìm thấy trừ khi bạn chạy lệnh cập nhật thủ công.

Cú pháp sử dụng lệnh locate như sau:
locate [TÙY_CHỌN]... [MẪU_TÌM_KIẾM]...Trong đó:
- [TÙY_CHỌN] (OPTION): Các thiết lập để điều chỉnh kết quả.
- [MẪU_TÌM_KIẾM] (PATTERN): Tên file hoặc từ khóa bạn muốn tìm, bạn có thể nhập nhiều mẫu tìm kiếm cùng lúc để định vị nhiều file khác nhau trong một lần chạy lệnh.
Các tùy chọn phổ biến của lệnh locate
Bạn có thể xem đầy đủ các tùy chọn của lệnh locate bằng cách dùng lệnh trợ giúp man với cú pháp:
man locateDưới đây là các tùy chọn phổ biến nhất của lệnh locate:
| Tùy chọn | Mô tả | Ví dụ minh họa |
|---|---|---|
| -i | Tìm kiếm không phân biệt chữ hoa/thường. | locate -i config |
| -c | Chỉ đếm tổng số lượng file tìm thấy, không hiện danh sách. | locate -c nginx.conf |
| -n N | Giới hạn số lượng kết quả trả về là N dòng. | locate -n 10 *.log |
| –existing | Chỉ hiển thị các file đang thực sự tồn tại. | locate --existing oldfile.txt |
| -r REGEX | Tìm kiếm nâng cao bằng biểu thức chính quy. | locate -r '.*\.conf$' |
Hướng dẫn cài đặt và kích hoạt tiện ích locate
Trước khi cài đặt, bạn cần xác xác định xem công cụ này đã có sẵn hay chưa bằng cách mở Terminal và gõ lệnh:
locateSau khi nhấn Enter, hệ thống sẽ trả về một trong hai kết quả:
- Đã được cài đặt: Màn hình hiển thị thông báo
locate: no pattern to search for specified. - Chưa được cài đặt: Màn hình báo lỗi
locate: command not found(không tìm thấy lệnh).
1. Cài đặt trên Ubuntu và Debian
Đối với các hệ điều hành thuộc họ Debian như Ubuntu, Linux Mint, Kali Linux,… bạn sử dụng trình quản lý gói apt. Hãy chạy lần lượt hai lệnh sau để cập nhật kho dữ liệu và cài đặt gói mlocate:
sudo apt update
sudo apt install mlocate2. Cài đặt trên CentOS và Fedora
Với các bản phân phối dựa trên nền tảng Red Hat (như CentOS, Fedora, RHEL,…), việc cài đặt được thực hiện thông qua trình quản lý gói yum. Bạn sử dụng câu lệnh sau:
sudo yum install mlocate
Lưu ý
Gói phần mềm thường được sử dụng hiện nay là mlocate(Merging Locate), một phiên bản cải tiến an toàn và hiệu quả hơn của lệnh locate truyền thống.
6 ví dụ sử dụng thực tế của lệnh locate
1. Tìm kiếm chính xác theo tên
Để truy xuất nhanh vị trí của file cấu hình Nginx trong hệ thống, bạn dùng lệnh locate với cú pháp như sau:
locate nginx.confLệnh này sẽ trả về toàn bộ đường dẫn chứa file nginx.conf, giúp bạn truy cập và chỉnh sửa cấu hình một cách nhanh chóng mà không cần nhớ chính xác file nằm ở thư mục nào.

Kết quả trả về tất cả đường dẫn chứa nginx.conf
2. Tìm kiếm không phân biệt hoa/thường
Khi không xác định được chính xác tên file viết hoa hay viết thường, bạn có thể dùng tùy chọn -i. Ví dụ, nếu bạn không nhớ chính xác file là README.md, ReadMe.md hay readme.md, hãy thực hiện lệnh sau:
locate -i README.mdTùy chọn -i cho phép tìm kiếm không phân biệt chữ hoa/thường, phù hợp khi làm việc trên dự án lớn với nhiều file tài liệu được đặt tên không thống nhất:

3. Giới hạn số lượng kết quả
Nếu từ khóa quá phổ biến và trả về nhiều dòng, bạn dùng tùy chọn -n để giới hạn số kết quả hiển thị, ví dụ để chỉ xem 5 dòng đầu, bạn thực thi lệnh như sau:
locate -i README.md -n 5Lệnh trên sẽ giúp bạn tập trung vào những kết quả có khả năng phù hợp nhất thay vì phải cuộn qua một danh sách quá dài.

4. Tìm kiếm nâng cao với Regex
Bạn có thể kết hợp locate với biểu thức chính quy (Regex) để lọc đúng kiểu file mong muốn. Chẳng hạn, để tìm kiếm tất cả file có đuôi .conf, bạn chạy lệnh sau:
locate -r '.*\.conf$'Tùy chọn -r cho phép dùng Regex, phù hợp khi bạn cần tìm các nhóm file theo mẫu tên phức tạp.

5. Lọc bỏ kết quả ảo
Vì lệnh locate tìm trong database nên có thể sẽ trả về kết quả là các file đã bị xóa. Lúc này, bạn có thể sử dụng tùy chọn --existing để yêu cầu hệ thống kiểm tra xem file đó có còn trên ổ cứng hay không trước khi hiển thị.
locate --existing log.log
6. Kết hợp pipeline để xử lý dữ liệu
Lệnh locate có thể dùng như bước lọc đường dẫn đầu tiên, sau đó chuyển danh sách file cho các công cụ khác xử lý. Ví dụ, để tìm lỗi trong tất cả file log, bạn thực thi lệnh sau:
locate "*.log" | xargs grep -i "error"Chuỗi lệnh này sẽ tìm mọi file .log rồi dùng grep quét nội dung chứa từ khóa “error”, rất hữu ích khi bạn cần phân tích log trên hệ thống lớn.

Cách quản lý database hiệu quả
Lưu ý
Hiệu quả xử lý của lệnh locate phụ thuộc vào độ mới của database. Nếu bạn vừa tạo một file mới, locate sẽ không thể tìm thấy file này ngay lập tức cho đến khi database được cập nhật.
1. Cập nhật Database thủ công
Khi bạn vừa thêm nhiều file và muốn tìm các file này bằng locate, hãy chạy lệnh sau:
sudo updatedb2. Cấu hình quét nâng cao
Mặc định, updatedb thường bỏ qua các thư mục quan trọng hoặc thư mục mạng để đảm bảo hiệu năng và bảo mật. Nếu muốn quét cả thư mục /root, bạn có thể thực thi lệnh sau:
sudo updatedb --prunepaths=""3. Tự động hóa cập nhật
Thông thường Linux đã có sẵn cronjob chạy hàng ngày. Tuy nhiên, bạn có thể thiết lập lịch riêng để cập nhật thường xuyên hơn. Ví dụ, bạn có thể thiết lập cron job để tự động cập nhật database vào 3 giờ sáng bằng lệnh sau:
0 3 * * * /usr/bin/updatedb4. Xóa file tốc độ cao
Bạn có thể sử dụng locate để tìm file rác và chuyển cho rm xử lý. Cách này sẽ nhanh hơn so với việc dùng lệnh find. Cú pháp lệnh như sau:
locate "*.tmp" | xargs rm -vLệnh trên sẽ tìm tất cả các file có đuôi .tmp và lần lượt xóa chúng, đồng thời rm -v in ra chi tiết từng file bị xóa.

Câu hỏi thường gặp
Tại sao tôi vừa tạo file xong mà dùng locate lại không tìm thấy?
Nguyên nhân bạn không tìm thấy là do locate không quét trực tiếp ổ cứng mà chỉ tra trong cơ sở dữ liệu và cơ sở dữ liệu này không được cập nhật theo thời gian thực. Để giải quyết vấn đề này, bạn hãy chạy lệnh sudo updatedb để cập nhật Database thủ công ngay sau khi tạo file.
Làm thế nào để biết Database của locate đang nằm ở đâu và dung lượng bao nhiêu?
Trên hầu hết các bản phân phối Linux (Ubuntu, CentOS), Database nằm tại /var/lib/mlocate/mlocate.db. Bạn có thể dùng lệnh locate -S để xem thông tin thống kê chi tiết về dung lượng và số lượng file/thư mục đã được index.
Lệnh slocate và mlocate có phải là locate không?
Đúng. Trên các hệ thống Linux hiện đại, lệnh locate thực chất là symlink trỏ tới mlocate hoặc slocate. Trong đó, mlocate là phiên bản cải tiến, giúp việc cập nhật database nhanh hơn bằng cách chỉ quét những phần thay đổi của hệ thống thay vì quét lại từ đầu.
Lệnh locate là một tiện ích tối ưu cho nhu cầu truy vấn đường dẫn tệp trên Linux nhờ khả năng tra cứu trên cơ sở dữ liệu đã được lập chỉ mục. Giải pháp này giúp bạn rút ngắn đáng kể thời gian thao tác so với các phương pháp dò tìm truyền thống. Chúc bạn thao tác thành công và cảm ơn bạn đã theo dõi bài viết.




