Cách tìm tệp và thư mục trong Linux bằng dòng lệnh

Hầu hết mọi người sử dụng trình quản lý tệp đồ họa để tìm tệp trong Linux, chẳng hạn như Nautilus trong Gnome, Dolphin trong KDE và Thunar trong Xfce. Tuy nhiên, có một số cách sử dụng dòng lệnh để tìm tệp trong Linux, bất kể bạn sử dụng trình quản lý máy tính để bàn nào.

Sử dụng lệnh Tìm

Lệnh “find” cho phép bạn tìm kiếm các tệp mà bạn biết tên tệp gần đúng. Dạng đơn giản nhất của lệnh tìm kiếm các tệp trong thư mục hiện tại và đệ quy thông qua các thư mục con của nó phù hợp với tiêu chí tìm kiếm được cung cấp. Bạn có thể tìm kiếm tệp theo tên, chủ sở hữu, nhóm, loại, quyền, ngày và các tiêu chí khác.

Gõ lệnh sau tại dấu nhắc sẽ liệt kê tất cả các tệp được tìm thấy trong thư mục hiện tại.

tìm thấy .

Dấu chấm sau “tìm thấy” cho biết thư mục hiện tại.

Để tìm các tệp phù hợp với một mẫu cụ thể, hãy sử dụng -Tên tranh luận. Bạn có thể sử dụng siêu ký tự tên tệp (chẳng hạn như * ), nhưng bạn nên đặt một ký tự thoát ( \ ) trước mỗi chúng hoặc đặt chúng trong dấu ngoặc kép.

Ví dụ: nếu chúng tôi muốn tìm tất cả các tệp bắt đầu bằng “pro” trong thư mục Documents, chúng tôi sẽ sử dụng cd Tài liệu / để thay đổi thư mục Documents, sau đó gõ lệnh sau:

tìm thấy . -name pro \ *

Tất cả các tệp trong thư mục hiện tại bắt đầu bằng “pro” đều được liệt kê.

LƯU Ý: Lệnh find mặc định có phân biệt chữ hoa chữ thường. Nếu bạn muốn tìm kiếm một từ hoặc cụm từ không phân biệt chữ hoa chữ thường, hãy sử dụng -iname tùy chọn với lệnh tìm. Đây là phiên bản không phân biệt chữ hoa chữ thường của -Tên chỉ huy.

Nếu tìm thấy không tìm thấy bất kỳ tệp nào phù hợp với tiêu chí của bạn, nó không tạo ra đầu ra.

Lệnh find có rất nhiều tùy chọn có sẵn để tinh chỉnh tìm kiếm. Để biết thêm thông tin về lệnh tìm, hãy chạy người đàn ông tìm thấy trong cửa sổ Terminal và nhấn Enter.

Sử dụng lệnh định vị

Lệnh định vị nhanh hơn lệnh tìm kiếm vì nó sử dụng cơ sở dữ liệu được xây dựng trước đó, trong khi lệnh tìm kiếm tìm kiếm trong hệ thống thực, thông qua tất cả các thư mục và tệp thực tế. Lệnh định vị trả về danh sách tất cả các tên đường dẫn có chứa nhóm ký tự được chỉ định.

Cơ sở dữ liệu được cập nhật định kỳ từ cron, nhưng bạn cũng có thể tự cập nhật nó bất cứ lúc nào để có thể nhận được kết quả cập nhật từng phút. Để thực hiện việc này, hãy nhập lệnh sau tại dấu nhắc:

sudo đã cập nhậtb

Nhập mật khẩu của bạn khi được nhắc.

Dạng cơ bản của lệnh định vị tìm tất cả các tệp trên hệ thống tệp, bắt đầu từ gốc, chứa tất cả hoặc bất kỳ phần nào của tiêu chí tìm kiếm.

định vị dữ liệu của tôi

Ví dụ: lệnh trên tìm thấy hai tệp chứa “mydata” và một tệp chứa “dữ liệu”.

Nếu bạn muốn tìm tất cả các tệp hoặc thư mục chứa chính xác và chỉ tiêu chí tìm kiếm của mình, hãy sử dụng -b với lệnh định vị, như sau.

xác định vị trí -b ‘\ mydata’

Dấu gạch chéo ngược trong lệnh trên là một ký tự gạch nối, cung cấp một cách mở rộng các ký tự đại diện trong một tên tệp không cụ thể thành một tập hợp các tên tệp cụ thể. Ký tự đại diện là một ký hiệu có thể được thay thế bằng một hoặc nhiều ký tự khi biểu thức được đánh giá. Các ký tự đại diện phổ biến nhất là dấu chấm hỏi ( ? ), là viết tắt của một ký tự đơn và dấu hoa thị ( * ), viết tắt của một chuỗi ký tự liền nhau. Trong ví dụ trên, dấu gạch chéo ngược vô hiệu hóa sự thay thế ngầm định của “mydata” bằng “* mydata *”, do đó bạn chỉ nhận được kết quả chứa “mydata”.

Lệnh mlocate là một triển khai mới của định vị. Nó lập chỉ mục toàn bộ hệ thống tệp, nhưng kết quả tìm kiếm chỉ bao gồm các tệp mà người dùng hiện tại có quyền truy cập. Khi bạn cập nhật cơ sở dữ liệu mlocate, nó sẽ giữ thông tin dấu thời gian trong cơ sở dữ liệu. Điều này cho phép mlocate biết liệu nội dung của một thư mục có thay đổi hay không mà không cần đọc lại nội dung và giúp cập nhật cơ sở dữ liệu nhanh hơn và ít yêu cầu hơn trên ổ cứng của bạn.

Khi bạn cài đặt mlocate, tệp nhị phân / usr / bin / định vị sẽ thay đổi thành trỏ đến mlocate. Để cài đặt mlocate, nếu nó chưa có trong bản phân phối Linux của bạn, hãy nhập lệnh sau tại dấu nhắc.

sudo apt-get install mlocate

LƯU Ý: Chúng tôi sẽ hiển thị cho bạn một lệnh sau trong bài viết này cho phép bạn xác định vị trí của tệp thực thi cho một lệnh, nếu nó tồn tại.

Lệnh mlocate không sử dụng tệp cơ sở dữ liệu giống như lệnh định vị tiêu chuẩn. Do đó, bạn có thể muốn tạo cơ sở dữ liệu theo cách thủ công bằng cách gõ lệnh sau tại dấu nhắc:

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 theo cách thủ công hoặc khi tập lệnh được chạy từ cron.

Để biết thêm thông tin về lệnh định vị hoặc lệnh mlocate, hãy nhập người đàn ông định vị hoặc là người đàn ông trong cửa sổ Terminal và nhấn Enter. Màn hình trợ giúp giống nhau hiển thị cho cả hai lệnh.

Sử dụng lệnh nào

Lệnh "which" trả về đường dẫn tuyệt đối của tệp thực thi được gọi khi lệnh được phát hành. Điều này hữu ích trong việc tìm kiếm vị trí của tệp thực thi để tạo lối tắt đến chương trình trên màn hình nền, trên bảng điều khiển hoặc vị trí khác trong trình quản lý máy tính để bàn. Ví dụ: gõ lệnh firefox nào hiển thị kết quả được hiển thị trong hình ảnh bên dưới.

Theo mặc định, lệnh nào chỉ hiển thị tệp thực thi phù hợp đầu tiên. Để hiển thị tất cả các tệp thực thi phù hợp, hãy sử dụng -a tùy chọn bằng lệnh:

mà-một firefox

Bạn có thể tìm kiếm nhiều tệp thực thi bằng cách sử dụng cùng một lúc, như được hiển thị trong hình ảnh sau đây. Chỉ các đường dẫn đến tệp thực thi được tìm thấy mới được hiển thị. Trong ví dụ dưới đây, chỉ tệp thực thi “ps” được tìm thấy.

LƯU Ý: Lệnh nào chỉ tìm kiếm biến PATH của người dùng hiện tại. Nếu bạn tìm kiếm một tệp thực thi chỉ có sẵn cho người dùng gốc như một người dùng bình thường, sẽ không có kết quả nào hiển thị.

Để biết thêm thông tin về lệnh nào, hãy nhập “man which” (không có dấu ngoặc kép) tại dấu nhắc lệnh trong cửa sổ Terminal và nhấn Enter.

Sử dụng Lệnh Whereis

Lệnh whereis được sử dụng để tìm vị trí của các tệp nhị phân, nguồn và tệp trang man cho một lệnh. Ví dụ, gõ whereis firefox tại dấu nhắc hiển thị kết quả như trong hình sau.

Nếu bạn chỉ muốn hiển thị đường dẫn đến tệp thực thi chứ không phải các đường dẫn đến nguồn và trang man (ual), hãy sử dụng -b Lựa chọn. Ví dụ, lệnh whereis -b firefox sẽ chỉ hiển thị / usr / bin / firefox kết quả là. Điều này rất hữu ích vì rất có thể bạn sẽ tìm kiếm tệp thực thi của chương trình thường xuyên hơn so với tìm kiếm trang nguồn và trang người dùng cho chương trình đó. Bạn cũng có thể chỉ tìm kiếm các tệp nguồn ( -S ) hoặc chỉ dành cho các trang nam ( -m ).

Để biết thêm thông tin về lệnh whereis, hãy nhập man whereis trong cửa sổ Terminal và nhấn Enter.

Hiểu sự khác biệt giữa Lệnh Whereis và Lệnh nào

Lệnh whereis hiển thị cho bạn vị trí của các trang nhị phân, nguồn và trang cho một lệnh, trong khi lệnh nào chỉ hiển thị cho bạn vị trí của nhị phân cho lệnh.

Lệnh whereis tìm kiếm qua danh sách các thư mục cụ thể cho tệp nhị phân, nguồn và tệp man, trong khi lệnh tìm kiếm các thư mục được liệt kê trong biến môi trường PATH của người dùng hiện tại. Đối với lệnh whereis, danh sách các thư mục cụ thể có thể được tìm thấy trong phần FILES của các trang người dùng cho lệnh.

Khi nói đến kết quả được hiển thị theo mặc định, lệnh whereis hiển thị mọi thứ mà nó tìm thấy trong khi lệnh nào chỉ hiển thị tệp thực thi đầu tiên mà nó tìm thấy. Bạn có thể thay đổi điều đó bằng cách sử dụng -a tùy chọn, đã thảo luận trước đó, cho lệnh nào.

Vì lệnh whereis chỉ sử dụng các đường dẫn được mã hóa cứng vào lệnh, nên không phải lúc nào bạn cũng có thể tìm thấy thứ mình đang tìm. Nếu bạn đang tìm kiếm một chương trình mà bạn cho rằng có thể được cài đặt trong một thư mục không được liệt kê trong trang man cho lệnh whereis, bạn có thể muốn sử dụng lệnh nào với -a tùy chọn để tìm tất cả các lần xuất hiện của lệnh trên toàn hệ thống.