Ngoài việc sử dụng giao diện trình quản lý file, người dùng cũng có thể tìm kiếm tập tin và thư mục trên Linux bằng các phương pháp khác. Dưới đây là hướng dẫn về cách tìm kiếm tập tin và thư mục trên Linux bằng cách sử dụng các công cụ dòng lệnh sau khi mở Terminal trên Linux.
Sử dụng lệnh Tìm kiếm
Lệnh find cho phép người dùng tìm kiếm các tập tin và thư mục trên Linux mà họ biết gần chính xác tên. Cơ bản, lệnh find tìm kiếm các tập tin trong thư mục hiện tại và đệ quy qua các thư mục con phù hợp với các điều kiện tìm kiếm được cung cấp. Người dùng có thể tìm kiếm tập tin theo tên, chủ sở hữu, nhóm, loại, quyền truy cập, ngày tháng và các điều kiện khác.
Nhập lệnh sau vào Terminal để liệt kê danh sách tất cả các tập tin được tìm thấy trong thư mục hiện tại:
find .
Dấu chấm sau lệnh find chỉ định rằng tìm kiếm được thực hiện trong thư mục hiện tại.
Để tìm file phù hợp với một mẫu cụ thể, sử dụng đối số -name. Bạn có thể sử dụng các ký tự đại diện cho tên file (như * ), nhưng nên đặt ký tự thoát ( \ ) trước mỗi tên file hoặc đặt tên file trong dấu ngoặc kép.
Ví dụ, để tìm kiếm tất cả các file bắt đầu bằng 'pro' trong thư mục Documents, bạn trước tiên sử dụng lệnh cd Documents/ để chuyển đến thư mục Documents và sau đó nhập lệnh sau:
find . -name pro\*
Tất cả các file trong thư mục hiện tại bắt đầu bằng 'pro' sẽ được liệt kê.
Chú ý: Lệnh find theo mặc định phân biệt chữ hoa và chữ thường. Để tìm kiếm mà không phân biệt chữ hoa chữ thường, bạn có thể sử dụng tùy chọn -iname với lệnh find.
Nếu không tìm thấy các file phù hợp với tiêu chí của bạn, lệnh sẽ không có kết quả trả về.
Lệnh find cung cấp nhiều tùy chọn để điều chỉnh quá trình tìm kiếm. Để biết thêm thông tin, bạn có thể sử dụng lệnh man find trên Terminal.
Sử dụng lệnh Locate
Lệnh locate hoạt động nhanh hơn lệnh find vì sử dụng cơ sở dữ liệu đã được xây dựng sẵn, trong khi lệnh find phải tìm kiếm trực tiếp trong hệ thống, xuyên suốt các thư mục và file thực tế. Lệnh locate trả về danh sách tất cả các tên đường dẫn chứa các chuỗi ký tự chỉ định.
Cơ sở dữ liệu được cập nhật định kỳ bởi cron, tuy nhiên bạn cũng có thể cập nhật bất cứ lúc nào để có kết quả tìm kiếm cập nhật. Để thực hiện điều này, nhập lệnh sau vào cửa sổ Terminal:
sudo updatedb
Nhập mật khẩu khi được yêu cầu.
Lệnh locate cơ bản xác định tất cả các file trên hệ thống tệp, bắt đầu từ root và có chứa bất kỳ phần nào trong tiêu chí tìm kiếm.
locate mydata
Ví dụ, lệnh trên sẽ tìm thấy 2 file chứa 'mydata' và 1 file chứa 'data'.
Để tìm kiếm các file hoặc thư mục chứa chính xác và chỉ chứa tiêu chí tìm kiếm của bạn, sử dụng tùy chọn -b với lệnh locate:
tìm -b '\mydata'
Dấu gạch chéo ngược trong lệnh trên đại diện cho việc mở rộng các ký tự trong một file không xác định thành một nhóm các file cụ thể. Ký tự đại diện có thể được thay thế bằng một hoặc nhiều ký tự khi biểu thức được đánh giá.
Dấu gạch chéo ngược thường được sử dụng để vô hiệu hóa việc thay thế ẩn 'mydata' bằng '*mydata*' trong kết quả, để chỉ hiển thị kết quả chứa 'mydata'.
Lệnh mlocate là một phiên bản mới được phát triển từ locate. Nó chỉ mục toàn bộ hệ thống tập tin, nhưng chỉ trả về các file mà người dùng hiện tại có quyền truy cập. Khi cập nhật cơ sở dữ liệu mlocate, nó lưu giữ thông tin timestamp trong cơ sở dữ liệu, cho phép nó nhận biết sự thay đổi trong nội dung thư mục mà không cần đọc lại toàn bộ nội dung, làm cho quá trình cập nhật cơ sở dữ liệu nhanh hơn và ít tác động đến ổ đĩa hơn.
Khi cài đặt mlocate, file /usr/bin/locate binary sẽ được điều chỉnh để trỏ đến mlocate. Để cài đặt mlocate, nếu chưa có trong phân phối Linux của bạn, nhập lệnh sau vào cửa sổ Terminal:
sudo apt-get install mlocate
Lệnh mlocate không sử dụng cùng một cơ sở dữ liệu với lệnh locate tiêu chuẩn. Vì vậy, nếu muốn tạo cơ sở dữ liệu thủ công, nhập lệnh sau:
sudo /etc/cron.daily/mlocate
Lệnh mlocate sẽ không hoạt động cho đến khi cơ sở dữ liệu được tạo thủ công bằng lệnh cron script.
Để biết thêm thông tin về lệnh locate hoặc mlocate, nhập man locate hoặc man mlocate vào cửa sổ Terminal và nhấn Enter.
Sử dụng lệnh Which
Lệnh which trả về đường dẫn tuyệt đối của file thực thi được gọi. Điều này hữu ích để tìm vị trí của một file thực thi và tạo shortcut cho chương trình trên máy tính, bảng điều khiển hoặc các vị trí khác trong trình quản lý desktop. Ví dụ, nhập lệnh which firefox để hiển thị kết quả.
Mặc định, lệnh which chỉ hiển thị file thực thi đầu tiên phù hợp. Để hiển thị tất cả các file thực thi phù hợp, bạn sử dụng tùy chọn -a với lệnh:
which -a firefox
Bạn cũng có thể tìm kiếm nhiều file thực thi bằng cách thêm các file cùng một lúc. Chỉ có các đường dẫn đến file thực thi được hiển thị. Trong ví dụ dưới đây chỉ có file thực thi 'ps' được tìm thấy.
Lưu ý: Lệnh which chỉ tìm kiếm biến PATH của người dùng hiện tại. Nếu tìm kiếm file thực thi có sẵn cho người dùng root như người dùng thông thường, sẽ không có kết quả nào được hiển thị.
Để biết thêm thông tin về lệnh which, nhập man which vào cửa sổ Terminal rồi nhấn Enter.
Sử dụng lệnh Whereis
Lệnh whereis dùng để tìm vị trí của các file nhị phân, nguồn và trang file man cho một lệnh. Ví dụ nhập lệnh whereis firefox vào cửa sổ Terminal và kết quả hiển thị như sau:
Nếu chỉ muốn hiển thị đường dẫn đến file thực thi, chứ không phải đường dẫn đến nguồn và trang man(ual), sử dụng tùy chọn -b. Ví dụ, lệnh whereis -b firefox sẽ chỉ hiển thị/usr/bin/firefox là kết quả tìm kiếm. Điều này rất hữu ích vì trong hầu hết các trường hợp bạn chỉ cần tìm kiếm file thực thi của các chương trình hơn là tìm kiếm các trang nguồn và trang man của chương trình đó. Bạn cũng có thể tìm kiếm các file mã nguồn mở (-s) hoặc chỉ tìm kiếm các trang man (-m).
Để hiểu rõ hơn về lệnh whereis, hãy nhập man whereis trong cửa sổ Terminal và nhấn Enter.
Điểm khác biệt giữa whereis và which
Lệnh whereis cung cấp vị trí của các tệp nhị phân, mã nguồn và trang man cho một lệnh cụ thể, trong khi lệnh which chỉ hiển thị vị trí của các tệp nhị phân.
Lệnh whereis tìm kiếm thông qua danh sách các thư mục cụ thể để tìm các tệp nhị phân, mã nguồn và trang man, trong khi lệnh which tìm kiếm các thư mục được liệt kê trong biến môi trường PATH. Với lệnh whereis, danh sách cụ thể này có thể được tìm thấy trong phần FILES trên trang man của lệnh.
Khi nói đến các kết quả mặc định, lệnh whereis hiển thị tất cả, còn lệnh which chỉ hiển thị file thực thi đầu tiên. Bạn có thể thay đổi điều này bằng cách sử dụng tùy chọn -a để tìm file và thư mục trên Linux.
Vì lệnh whereis chỉ sử dụng đường dẫn đã được mã hóa cứng, nên không phải lúc nào bạn cũng có thể nhìn thấy những gì bạn cần. Nếu tìm một chương trình mà không có trong danh sách của whereis, sử dụng lệnh which với tùy chọn -a để tìm trên toàn bộ hệ thống.
Đó là bốn cách để tìm file và thư mục trên Linux. Nếu có thắc mắc, hãy để lại ý kiến dưới bài viết. Mytour sẽ trả lời sớm nhất có thể.