Người dùng có thể sử dụng siêu ký tự như “*” nhưng phải đặt ký hiệu thoát “\” trước Ví dụ như, nếu ta muốn tìm tất cả các file mà bắt đầu với “pro” trong thư mục Documents, sử dụng câu
Trang 1Tìm kiếm file và thư mục trong Linux sử
dụng giao diện dòng lệnh Bạn có thể sử dụng tiện ích quản lý file bằng giao diện đồ họa để tìm file trong Linux như Nautilus trong Gnome, Dolphin trong KDE và Thunar trong Xfce Tuy nhiên, có một vài cách sử dụng dòng lệnh để tìm file trong bất kỳ tiện
ích quản lý màn hình Linux nào
Sử dụng câu lệnh Find
Câu lệnh Find cho phép người dùng tìm file nếu biết gần đúng tên file Đây là dạng câu lệnh đơn giản nhất tìm kiếm file trong thư mục hiện tại mà khớp với tiêu chí nhất định Người dùng có thể tìm kiếm file theo tên, chủ sở hữu, nhóm, loại file, theo quyền, ngày tháng năm và theo nhiều tiêu chí khác
Gõ câu lệnh sau để liệt kê tất cả các file tìm được trong thư mục hiện tại:
Trang 2find
Dấu chấm chỉ thị thư mục hiện tại
Để tìm những file khớp với một mẫu đặc biệt, sử dụng tham số “-name” Người dùng có thể sử dụng siêu ký tự (như “*”) nhưng phải đặt ký hiệu thoát “\” trước
Ví dụ như, nếu ta muốn tìm tất cả các file mà bắt đầu với “pro” trong thư mục
Documents, sử dụng câu lệnh cd Documents/ để chuyển tới thư mục Documents,
sau đó gõ câu lệnh sau:
find –name pro\*
Tất cả những file bắt đầu với “pro” trong thư mục sẽ được liệt kê ra
Lưu ý: Câu lệnh find mặc định phân biệt chữ hoa và chữ thường Nếu muốn tìm kiếm một từ hay một cụm từ không phân biệt chữ hoa chữ thường, hãy sử dụng
tùy chọn “-iname” cùng câu lệnh find
Trang 3Nếu không có file nào phù hợp tiêu chí, sẽ không có kết quả nào hiển thị
Câu lệnh find có nhiều tùy chọn để lọc tìm kiếm Để tìm hiểu rõ hơn, gõ “man
find” trong cửa sổ Terminal và nhấn Enter
Sử dụng câu lệnh locate
Câu lệnh locate nhanh hơn câu lệnh find vì nó sử dụng cơ sở dữ liệu được xây dựng trước đó trong khi lệnh find lại tìm kiếm trong hệ thống theo thời gian thực,
từ tất cả các thư mục và file Câu lệnh locate trả về một danh sách tất cả tên đường dẫn chứa nhóm các ký tự đặc biệt
Cơ sở dữ liệu được cập nhật định kỳ từ cron, nhưng người dùng cũng có thể tự cập
nhật bất cứ lúc nào vì vậy có thể nhận được kết quả ngay Để làm điều này, gõ câu lệnh sau:
sudo updatedb
Nhập mật khẩu
Dạng gốc của câu lệnh locate tìm ra tất cả các file trong hệ thống file, bắt đầu từ thư mục gốc mà chứa toàn bộ hay bất cứ phần nào của tiêu chí tìm kiếm
Trang 4locate mydata
Ví dụ như, câu lệnh sau đã tìm thấy 2 file chứa “mydata” và 1 file chứa “data”
Nếu muốn tìm toàn bộ các file hay thư mục chứa chính xác như tiêu chí tìm kiếm,
sử dụng tùy chọn “-b” cùng câu lệnh locate như sau:
locate –b’\mydata’
Lệnh mlocate là một biến thể của locate Kết quả tìm kiếm chỉ gồm những file mà người dùng hiện tại đã truy cập tới Khi bạn cập nhật cơ sở dữ liệu mlocate, nó duy trì thông tin tem thời gian trong cơ sở dữ liệu Việc này cho phép mlocate biết được nếu các nội dung trong một thư mục bị thay đổi mà không cần đọc lại nội dung và cập nhật vào cơ sở dữ liệu nhanh hơn mà ít phụ thuộc vào ổ cứng
Khi cài đặt mlocate, file nhị phân /usr/bin/locate thay đổi và trỏ tới mlocate Để
cài đặt mlocate khi câu lệnh không có trong bản phân phối Linux, gõ câu lệnh sau: sudo apt-get install mlocate
Trang 5Lệnh mlocate không sử dụng cùng file cơ sở dữ liệu với câu lệnh locate chuẩn Do vậy, người dùng có thể tạo cơ sở dữ liệu một cách thủ công bằng cách gõ câu 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 hay
khi script được chạy từcron
Để xem thông tin chi tiết về câu lệnh locate và mlocate, gõ man locate hoặc man mlocate trong cửa sổ lệnh và nhấn Enter Màn hình trợ giúp sẽ hiện ra
Sử dụng câu lệnh which
Lệnh which trả về đường dẫn tuyệt đối của file thực thi được gọi khi một lệnh được đưa ra Điều này hữu ích khi cần tìm vị trí của một file thực thi để tạo một biểu tượng tắt tới chương trình trên màn hình, trên một panel hay ở vị trí khác
trong tiện ích quản lý desktop Ví dụ như, gõ câu lệnh which firefox sẽ hiển thị
những kết quả như hình dưới
Trang 6Lưu ý: Mặc đinh thì câu lệnh which chỉ hiển thị kết quả phù hợp đầu tiên Để hiện
thị toàn bộ kết quả, sử dụng tùy chọn “-a” cùng câu lệnh Câu lệnh “which firefox”
sẽ trở thành “which –a firefox”
Người dùng có thể tìm kiếm nhiều file thực thi cùng một lúc Chỉ những đường dẫn tới những file thực thi được tìm thấy mới được hiển thị Trọng ví dụ dưới đây,
chỉ file thực thi “ps” được tìm thấy
Lưu ý: Câu lệnh which chỉ tìm đường dẫn tới file thực thi mà người dùng hiện tại được phép sử dụng Nếu tìm kiếm một file thực thi mà chỉ có người quản trị được phép sử dụng, sẽ không có kết quả nào được hiển thị
Để tìm hiểu thêm thông tin về câu lệnh which, gõ man which ở cửa sổ lệnh và nhấn Enter
Sử dụng câu lệnh whereis
Lệnh whereis được dùng để tìm kiếm vị trí đặt các file nhị phân, file nguồn hay
file “man” cho một chương trình Ví dụ như, khi gõ whereis firefox” ta sẽ thu
được kết quả hiển thị như hình dưới đây
Trang 7Nếu bạn chỉ muốn đường dẫn tới file thực thi hiển thị và không hiển thị đường tới
file nguồn và file “man”, sử dụng tùy chọn “-b” Chẳng hạn như, câu lệnh “whereis –b firefox” sẽ chỉ hiển thị kết quả là “/usr/bin/firefox” Điều này rất
thuận tiện do người dùng thường sẽ tìm kiếm file thực thi chương trình nhiều hơn
là tìm kiếm nguồn và file “man” của chương trình đó Người dùng cũng có thể chỉ tìm kiếm file nguồn (“-s”) hay các file “man” (“-m”)
Để tìm hiểu thông tin chi tiết về câu lệnh, gõ man whereis ở cửa sổ câu lệnh và nhấn Enter
Sự khác nhau giữa whereis và which
Lệnh whereis chỉ vị trí các file nhị phân, file nguồn và những file “man” với chỉ
một câu lệnh, trong khi lệnh which chỉ cho ra vị trí file nhị phân
Lệnh whereis tìm từ một danh sách thư mục đặc biệt cho file nhị phân, file nguồn
và file “man” trong khi lệnh which tìm kiếm các thư mục được liệt kê trong môi
trường PATH được phép của người dùng hiện thời Với lệnh whereis, danh sách
thư mục đặc biệt có thể được tìm thấy trong phần FILES của file “man”
Theo mặc định, lệnh whereis hiển thị mọi kết quả tìm được trong khi lệnh which chỉ hiển thị kết quả đầu tiên tìm được
Do lệnh whereis chỉ sử dụng đường dẫn đã được nhúng (hard-code) vào câu lệnh,
bạn có thể không tìm thấy kết quả mình trông đợi Nếu bạn đang tìm kiếm một chương trình mà bạn nghĩ có thể đã được cài trong một thư mục mà không được liệt kê trong file “man” của câu lệnh whereis, hãy sử dụng câu lệnh which với tùy chọn “-a” để tìm tất cả kết quả từ hệ thống