Skip to content

Tin Học Công Nghệ

Tin Học Công Nghệ

  • Home » 
  • Máy Tính » 
  • Cách Tìm Kiếm Tệp Tin Hiệu Quả Trong Linux: So Sánh Lệnh Locate, Find và Whereis

Cách Tìm Kiếm Tệp Tin Hiệu Quả Trong Linux: So Sánh Lệnh Locate, Find và Whereis

By Administrator Tháng 8 4, 2025 0
Locating the file using its name with locate command in Ubuntu terminal.
Table of Contents

Trong thế giới Linux, việc tìm kiếm các tệp tin hoặc thư mục là một kỹ năng cơ bản nhưng cực kỳ quan trọng. Hệ điều hành này cung cấp nhiều công cụ mạnh mẽ để thực hiện tác vụ này, bao gồm các lệnh phổ biến như locate, find, và whereis. Mỗi lệnh lại có phương thức hoạt động, ưu nhược điểm và trường hợp sử dụng tối ưu riêng. Việc nắm vững cách thức vận hành và mục đích của từng lệnh không chỉ giúp bạn tiết kiệm thời gian mà còn nâng cao hiệu quả làm việc, tránh khỏi sự bực bội khi tìm kiếm trong một hệ thống tệp tin rộng lớn. Bài viết này sẽ đi sâu phân tích từng lệnh, so sánh hiệu năng và chỉ ra khi nào bạn nên sử dụng công cụ nào để đạt được kết quả tốt nhất.

Lệnh locate: Tìm kiếm Nhanh Chóng với Cơ Sở Dữ Liệu

Lệnh locate được thiết kế để tìm kiếm tệp tin và thư mục dựa trên tên của chúng (hoặc một phần tên) với tốc độ gần như tức thì. Khả năng tìm kiếm nhanh đáng kinh ngạc này có được là nhờ locate không thực sự quét hệ thống tệp tin của bạn theo thời gian thực. Thay vào đó, nó truy vấn một cơ sở dữ liệu đã được xây dựng sẵn, thường được đặt tên là mlocate.db, plocate.db, hoặc đơn giản là locate.db, tùy thuộc vào bản phân phối Linux bạn đang sử dụng.

Tuy nhiên, chính cơ chế hoạt động này cũng tạo ra một hạn chế: cơ sở dữ liệu của locate không được cập nhật theo thời gian thực. Điều này có nghĩa là nếu bạn vừa tạo hoặc xóa một tệp tin, locate có thể sẽ không nhận biết được sự thay đổi đó cho đến lần cập nhật cơ sở dữ liệu tiếp theo. Cơ sở dữ liệu này thường được làm mới định kỳ bởi một tiến trình hệ thống, điển hình là thông qua một cron job chạy hàng ngày. Bạn cũng có thể tự cập nhật cơ sở dữ liệu bằng lệnh sudo updatedb, mặc dù quá trình lập chỉ mục toàn bộ hệ thống tệp tin có thể mất một chút thời gian.

Cú pháp cơ bản của lệnh locate rất đơn giản:

locate -i ten_tep_tin

Ví dụ, để tìm tệp tin có tên “my_script.sh”, bạn sẽ gõ: locate -i my_script.sh.

Locating the file using its name with locate command in Ubuntu terminal.Locating the file using its name with locate command in Ubuntu terminal.

Nếu tệp tin tồn tại và cơ sở dữ liệu đã được cập nhật, locate sẽ liệt kê tất cả các đường dẫn có chứa “my_script.sh”. Tùy chọn -i giúp tìm kiếm không phân biệt chữ hoa, chữ thường. Bạn cũng có thể tìm kiếm tất cả các tệp tin với một phần mở rộng cụ thể, đếm số kết quả phù hợp bằng tùy chọn -c, hoặc giới hạn số lượng đầu ra với tùy chọn -n. Lệnh locate còn hỗ trợ khớp mẫu bằng ký tự đại diện (wildcard) và biểu thức chính quy cơ bản, cung cấp nhiều quyền kiểm soát hơn cho các tìm kiếm của bạn.

locate, mlocate và plocate: Những Cải Tiến Quan Trọng

Theo thời gian, tiện ích locate gốc đã được thay thế trong hầu hết các bản phân phối bởi mlocate. mlocate đã giới thiệu những cải tiến quan trọng, chẳng hạn như khả năng tôn trọng quyền truy cập của người dùng, đảm bảo bạn chỉ có thể thấy các tệp tin mà mình được phép truy cập.

Khi mlocate được cài đặt, nó sẽ cung cấp chính lệnh locate. Vì vậy, ngay cả khi bạn gõ locate, thực chất bạn đang chạy mlocate ở chế độ nền. Bạn có thể xác nhận phiên bản đang được sử dụng bằng lệnh:

locate --version

Lệnh này sẽ hiển thị phiên bản locate nào đang xử lý các tìm kiếm của bạn.

Gần đây hơn, một triển khai mới tên là plocate đã bắt đầu thay thế mlocate trong một số bản phân phối. plocate nhanh hơn và hiệu quả hơn, sử dụng chỉ mục nén để giảm thời gian tìm kiếm và mức sử dụng đĩa – đặc biệt hữu ích trên các hệ thống có số lượng lớn tệp tin. Fedora, chẳng hạn, hiện sử dụng plocate theo mặc định, và nhiều bản phân phối khác cũng đang dần áp dụng.

Bạn có thể cài đặt plocate bằng trình quản lý gói mặc định của mình; ví dụ trên Ubuntu, hãy chạy:

sudo apt install plocate

Installing plocate command line tool in Ubuntu using APT manager.Installing plocate command line tool in Ubuntu using APT manager.

Tương tự, ngay cả khi plocate được cài đặt, lệnh bạn gõ vẫn là locate, vì vậy cách bạn sử dụng nó không thay đổi. Đối với hầu hết người dùng, chức năng và cú pháp là như nhau. Tuy nhiên, một vài tùy chọn nâng cao có thể hơi khác biệt giữa mlocate và plocate.

Lệnh find: Tìm kiếm Linh Hoạt và Mạnh Mẽ theo Thời Gian Thực

Không giống như lệnh locate, lệnh find tìm kiếm tệp tin và thư mục theo thời gian thực bằng cách trực tiếp duyệt qua hệ thống thư mục được chỉ định. Nó không dựa vào cơ sở dữ liệu, điều này có nghĩa là find luôn trả về thông tin cập nhật nhất. Tuy nhiên, điều này cũng đồng nghĩa với việc nó có thể chậm hơn locate, đặc biệt khi tìm kiếm trên các hệ thống tệp tin lớn.

Điểm làm cho find nổi bật là khả năng tìm kiếm dựa trên một loạt các tiêu chí đa dạng – không chỉ tên, mà còn loại (type), kích thước (size), quyền hạn (permissions), chủ sở hữu (ownership), thời gian sửa đổi (modification time), và nhiều hơn nữa. Chưa dừng lại ở đó, find còn có thể thực thi các lệnh tùy ý (như rm, cp, hoặc chmod) trên các tệp tin mà nó tìm thấy bằng cách sử dụng tùy chọn -exec.

Dưới đây là cú pháp cơ bản của lệnh find:

find [đường_dẫn] [tùy_chọn] [biểu_thức]
  • đường_dẫn: Nơi bắt đầu tìm kiếm (sử dụng . cho thư mục hiện tại).
  • tùy_chọn & biểu_thức: Cần tìm gì và cách lọc kết quả.

Ví dụ, để tìm một tệp tin có tên config.xml trong thư mục chính của bạn và các thư mục con của nó, hãy chạy:

find /home/ten_nguoi_dung_cua_ban -name "config.xml"

Tương tự như locate, find có thể thực hiện tìm kiếm không phân biệt chữ hoa, chữ thường bằng cách sử dụng tùy chọn -iname (insensitive name):

find /var/log -iname "error*.log"

Lệnh này sẽ tìm các tệp tin như error.log, Error.Log, và ERROR-messages.log trong /var/log.

Bạn cũng có thể tìm kiếm các loại tệp tin cụ thể. Ví dụ, để tìm tất cả các thư mục (d) trong đường dẫn hiện tại, hãy sử dụng:

find . -type d

Hoặc bạn có thể tìm các tệp tin lớn hơn 100 MB (+100M) trong thư mục /opt của bạn bằng lệnh:

find /opt -size +100M

Finding files based on the specified size using find command.Finding files based on the specified size using find command.

Ngoài ra, bạn có thể tìm kiếm các tệp tin rỗng, thư mục rỗng, hoặc các mục dựa trên thời gian sửa đổi cụ thể của chúng. find còn cho phép bạn chạy các lệnh khác trên mỗi tệp tin tìm thấy, ví dụ, xóa tất cả các tệp tin .tmp bằng lệnh sau:

find . -name "*.tmp" -exec rm {} ;

Lệnh whereis: Chuyên Gia Định Vị Các Thành Phần của Lệnh

Lệnh whereis khá khác biệt so với locate và find. Trong khi hai lệnh trước là công cụ tìm kiếm tệp tin đa năng, whereis có một nhiệm vụ rất cụ thể: định vị tệp nhị phân (binary – các chương trình thực thi), tệp mã nguồn (source files), và các trang hướng dẫn sử dụng (manual pages – man pages) cho một lệnh nhất định.

Lệnh này đặc biệt hữu ích khi bạn đang cố gắng hiểu cách một lệnh được cài đặt trên hệ thống của mình hoặc khi bạn đang khắc phục sự cố liên quan đến việc thực thi chương trình.

Không giống như locate và find, whereis chỉ tìm kiếm trong một tập hợp các thư mục được xác định trước, nơi các loại tệp tin này thường được lưu trữ – những nơi như /bin, /usr/bin, và /usr/local/bin cho các tệp nhị phân; /usr/share/man cho các trang hướng dẫn; và các thư mục mã nguồn khác nhau.

Ví dụ, nếu bạn muốn tìm tệp nhị phân của lệnh ls, mã nguồn của nó (nếu có), và các trang man của nó, bạn có thể chạy:

whereis ls

Lệnh này sẽ cho bạn biết tệp nhị phân ls nằm ở “/bin/ls” và trang man của nó là “/usr/share/man/man1/ls.1.gz.”

Nếu bạn chỉ quan tâm đến đường dẫn của tệp thực thi, hãy sử dụng tùy chọn -b (binary):

whereis -b ls

Để chỉ tìm các trang hướng dẫn sử dụng, hãy dùng tùy chọn -m (man):

whereis -m bash

Bạn cũng có thể hỏi whereis về nhiều lệnh cùng lúc:

whereis grep sed awk

Finding executables path of multiple commands using whereis utility.Finding executables path of multiple commands using whereis utility.

Thông thường, các tệp mã nguồn không được cài đặt theo mặc định. Trong những trường hợp như vậy, đầu ra có thể chỉ bao gồm tên lệnh nếu không tìm thấy mã nguồn trong các vị trí tiêu chuẩn.

Khi nào nên sử dụng Từng Lệnh?

Bạn nên sử dụng lệnh locate khi muốn có một cái nhìn tổng quan nhanh chóng, toàn hệ thống về nơi tồn tại các tệp tin cụ thể với một tên nhất định. Nó hoạt động tốt nhất khi bạn khá chắc chắn tệp tin đó không phải là mới được tạo, hoặc bạn đã cập nhật cơ sở dữ liệu gần đây.

Mặt khác, lệnh find phù hợp hơn khi bạn cần tìm kiếm dựa trên các tiêu chí khác ngoài tên, chẳng hạn như kích thước tệp, loại, quyền hạn hoặc ngày sửa đổi. Nó đặc biệt hữu ích khi bạn muốn tìm kiếm sâu trong một cây thư mục cụ thể, hoặc khi tệp bạn đang tìm có thể là tệp mới và chưa được đưa vào cơ sở dữ liệu của locate. find cũng phát huy tác dụng khi bạn cần kết quả theo thời gian thực hoặc muốn thực hiện các hành động như xóa, sao chép hoặc thay đổi quyền trên các tệp tin mà nó tìm thấy.

Lệnh whereis trở nên tiện dụng khi bạn đặc biệt cần định vị tệp nhị phân thực thi, tệp mã nguồn hoặc các trang hướng dẫn sử dụng của một lệnh. Nó đặc biệt hữu ích khi bạn đang khắc phục sự cố với biến môi trường PATH của hệ thống hoặc cố gắng hiểu một chương trình được cài đặt ở đâu và như thế nào.

Đôi khi, nhu cầu của bạn có thể trùng lặp giữa cả ba lệnh. Ví dụ, nếu locate trả về quá nhiều kết quả, bạn có thể sử dụng đầu ra của nó để thu hẹp đường dẫn bắt đầu cho một tìm kiếm find chính xác hơn. Các lệnh này không loại trừ lẫn nhau – chúng hoạt động tốt nhất khi được sử dụng kết hợp như một phần trong bộ công cụ Linux của bạn. Thành thạo những công cụ này sẽ giúp bạn trở thành một người dùng Linux hiệu quả và tự tin hơn.

Share
facebookShare on FacebooktwitterShare on TwitterpinterestShare on Pinterest
linkedinShare on LinkedinvkShare on VkredditShare on ReddittumblrShare on TumblrviadeoShare on ViadeobufferShare on BufferpocketShare on PocketwhatsappShare on WhatsappviberShare on ViberemailShare on EmailskypeShare on SkypediggShare on DiggmyspaceShare on MyspacebloggerShare on Blogger YahooMailShare on Yahoo mailtelegramShare on TelegramMessengerShare on Facebook Messenger gmailShare on GmailamazonShare on AmazonSMSShare on SMS
Post navigation
Previous post

10 Món Đồ Gaming Khiến Tôi Hối Tiếc Nhất: Bài Học Đắt Giá Từ Game Thủ Lâu Năm

Next post

Samsung Galaxy A16 5G: Bước Đột Phá Hỗ Trợ Phần Mềm Cho Điện Thoại Giá Rẻ

Administrator

Related Posts

Categories Máy Tính Cách Tìm Kiếm Tệp Tin Hiệu Quả Trong Linux: So Sánh Lệnh Locate, Find và Whereis

System76 Serval WS Mới Ra Mắt: Nâng Cấp Mạnh Mẽ Với Intel Core Ultra 9 và RTX 5070 Ti, Tối Ưu Cho Linux

Categories Máy Tính Cách Tìm Kiếm Tệp Tin Hiệu Quả Trong Linux: So Sánh Lệnh Locate, Find và Whereis

Lenovo Yoga Solar PC: Laptop Năng Lượng Mặt Trời Tiên Phong Thay Đổi Tương Lai

Categories Máy Tính Cách Tìm Kiếm Tệp Tin Hiệu Quả Trong Linux: So Sánh Lệnh Locate, Find và Whereis

Anker Prime Thunderbolt 5 Dock: Ưu Đãi 15% – Nâng Tầm Kết Nối Cho Laptop Hiện Đại

Leave a Comment Hủy

Recent Posts

  • Chiến lược đột phá của Microsoft: Windows trên PC cầm tay sẵn sàng đối đầu SteamOS?
  • Sử Dụng Chuột Trên Nintendo Switch 2: Giải Pháp Tối Ưu Trải Nghiệm Chơi Game
  • System76 Serval WS Mới Ra Mắt: Nâng Cấp Mạnh Mẽ Với Intel Core Ultra 9 và RTX 5070 Ti, Tối Ưu Cho Linux
  • iPhone 16E Ra Mắt: Apple Định Nghĩa Lại Phân Khúc “Giá Rẻ” Như Thế Nào?
  • Nâng Cấp Bảo Vệ Toàn Diện: Hướng Dẫn Chọn Vỏ iPad Pro 13 Inch Tốt Nhất

Recent Comments

Không có bình luận nào để hiển thị.
Copyright © 2025 Tin Học Công Nghệ - Powered by Nevothemes.
Offcanvas
Offcanvas

  • Lost your password ?