Hướng dẫntìmkiếm file vớilệnhlocate
Huong dantimkiemfilevoilenhlocate một trong những giải pháp thay thế hiệu
quả trong nhiều trường hợp và nó là linh hoạt và thực thi nhanh.
Hướng dẫntìmkiếm file vớilệnhlocate một trong những giải pháp thay thế hiệu quả
trong nhiều trường hợp và nó là linh hoạt và thực thi nhanh. Với phần huongdantim
kiem filevoilenhlocate nay bạn hoàn toàn có thể tìmkiếmfile một cách nhanh chóng và
dễ dàng.
Huong dantimkiemfilevoilenhlocate
Cơ chế hoạt động của locate
Thực ra locate không tìm thông tin về file trên đĩa cứng như find, nó chỉ tìmkiếm đường
dẫn trong một cơ sở dữ liệu tên là mlocate.db. CSDL này lưu thông tin về các file và
đường dẫn trong hệ thống lưu trữ. Bạn có thể tìm thấy nó tại:
/var/lib/mlocate/mlocate.db
Câu hỏi tiếp theo là: nếu locate chỉ đơn thuần tìmkiếm đường dẫn trong mlocate.db thì
cơ chế nào giúp cập nhật cho mlocate.db?
mlocate.db được cập nhật bởi một tiện ích tên updatedb. Khi ta khởi chạy updatedb nó sẽ
quét toàn bộ hệ thống và cập nhật thông tin về đường dẫn vào mlocate.db.
Để update thông tin cho mlocate.db thủ công:
$ sudo updatedb
Từ đây bạn có thể thấy rõ nhược điểm của locate, kết quả của nó trả về phụ thuộc vào
tính chính xác của mlocate.db và điều này lại phụ thuộc vào updatedb. Vậy để tăng tính
chính xác của locate chúng ta cần thay đổi thời gian mỗi lần cập nhật mlocate.db.
Ngoài ra các thông số về định dạng file, nơi cần đánh chỉ mục với câu lệnh locatedb được
lưu trong /etc/updatedb.conf. Bạn có thể thay đổi thông số của file này để phù hợp với
nhu cầu của mình:
$ sudo nano /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs
coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs
fuse.sshfs ecryptfs fusesmb devtmpfs"
updatedb.conf lưu các thông tin dưới dạng Biến = Giá trị. Trong đó:
PRUNEFS thông tin về các kiểu file hệ thống mà sẽ không được quét và cập nhật bởi
câu lệnh updatedb.
PRUNENAMES thông tin về các định dạng file mà không được quét và cập nhật.
PRUNEPATHS thông tin về những thư mục sẽ không được quét và cập nhật
PRUNE_BIND_MOUNTS nhận giá trị 0 hoặc 1 ('no' hoặc 'yes') nếu là 'yes' (1) thì
locatedb sẽ không quét các phân vùng được mount với tham số –bind.
Bạn có thể thay đổi các thông số này sao cho phù hợp với nhu cầu.
Một số ví dụ
Cách thức sử dụng locate như sau:
$ locate -tham_số tên_file
Tìm file tên httpd.conf
$ locate httpd.conf
/etc/httpd/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
Dùng tham số -0 để hiển thị kết quả trên một dòng:
$ locate httpd.conf /etc/httpd/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
Hiển thị số đếm kết quả
Dùng tham số -c để đếm số kết quả trả về:
$ locate -c httpd.conf
Giả sử bạn có hai file tên: new.txt và NEW.txt trong thư mục /home. Mặc định locate sẽ
phân biệt chữ viết hoa và thường, vậy nên nếu bạn sử dụng:
$ locate new.txt
/home/new.txt
Nếu muốn tìm tất cả các trường hợp cả chữ in hoa và thường bạn cần tham số -i
$ locate -i new.txt
/home/new.txt
/home/NEW.txt
Tiếp theo giả sử bạn xóa file new.txt và ngay lúc đó mlocate.db chưa được cập nhật, nếu
bạn chạy lệnh $ locate new.txt thì kết quả vẫn sẽ trả về đường dẫn của file đó là
/home/new.txt. Tuy nhiên file đó không còn tồn tại.
Để tránh trường hợp trên bạn có thể sử dụng tham số -e để kiểm tra đường dẫn trả về có
tồn tại. Như trong trường hợp này nó sẽ không trả về /home/new.txt
$ locate -i -e new.txt
/home/NEW.txt
Nếu kết quả trả về quá dài như:
$ locate passwd
/etc/passwd
/etc/passwd-
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
/etc/pam.d/passwd
/etc/security/opasswd
/etc/vsftpd/passwd
/lib64/security/pam_unix_passwd.so
/usr/bin/gpasswd
/usr/bin/htpasswd
Bạn chỉ muốn xem ba kết quả đầu tiên? Thêm tham số -l 3
$ locate passwd
/etc/passwd
/etc/passwd-
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
Trên đây là một số thông tin cơ bản về câu lệnh locate. Bạn có thể tìm hiểu thêm những
tham số của nó trong tài liệuhướngdẫn ($ man locate)
. Hướng dẫn tìm kiếm file với lệnh locate
Huong dan tim kiem file voi lenh locate một trong những giải pháp thay thế. nhanh.
Hướng dẫn tìm kiếm file với lệnh locate một trong những giải pháp thay thế hiệu quả
trong nhiều trường hợp và nó là linh hoạt và thực thi nhanh. Với