Làm thế nào tôi có thể sử dụng lệnh find hiệu quả hơn?


15

Tôi muốn biết, cách tốt nhất để sử dụng lệnh find hiệu quả là gì?

Tôi thường sử dụng, find [filename] [dir]cung cấp cho tôi một danh sách dài các tên tệp không có cách nào liên quan đến tìm kiếm của tôi.

Tôi chỉ cần tìm một tập tin trong một thư mục cụ thể. Lệnh cho điều đó là gì?

Câu trả lời:


24

bạn thường nói tìm nơi bắt đầu tìm kiếm, và những gì cần tìm. Vì vậy, cú pháp cho các đường dẫn để tìm kiếm và những gì bạn thực sự đang cố gắng tìm là khác nhau.

Đối với trường hợp sử dụng mà bạn đề cập, giả sử bạn muốn tìm passwdtệp trong /etc:

find /etc/ -name passwd

bạn đang nói "bắt đầu từ vv, hãy tìm một tập tin có tênpasswd

nếu bạn không chỉ định tiêu chí (hoặc "tùy chọn" trong cách tìm), thì tìm thấy là gì, nó bắt đầu trong đường dẫn (hoặc đường dẫn) bạn chỉ định và tìm tất cả các tệp và thư mục bên dưới, theo cách đệ quy. Vì vậy, các tùy chọn "lọc" các tệp đó để thu hẹp những gì bạn đang tìm kiếm.

Tìm tất cả các tệp JPG ở bất cứ đâu trong hệ thống tệp của bạn:

find / -name "*jpg" 

Nên sử dụng dấu ngoặc kép trong các tùy chọn của bạn vì nếu không, việc mở rộng shell có thể khiến bạn đau đầu.

Tìm bất kỳ tệp pdf nào, bất kể trường hợp nào, trong Tài liệu hoặc Tải xuống:

find Documents/ Downloads/ -iname "*pdf"

Nếu bạn làm man findvà cuộn xuống KIỂM TRA, bạn sẽ tìm thấy tất cả "tiêu chí" mà tìm thấy có thể sử dụng để thu hẹp tìm kiếm của bạn. Bạn có thể tìm kiếm các tệp có tên tệp cụ thể, thuộc sở hữu của người dùng hoặc nhóm cụ thể, có quyền truy cập tệp cụ thể, thuộc loại cụ thể (ví dụ: -type dchỉ tìm thấy thư mục, trong khi -type fsẽ chỉ tìm thấy tệp đơn giản, ngoại trừ thư mục), tệp mới hơn hoặc cũ hơn một số ngày cụ thể (hoặc phút), các tệp trống, có thể thực thi được, v.v.

Trong trang tìm kiếm của bạn, bạn cũng sẽ tìm thấy một phần có tên HÀNH ĐỘNG, những phần này có thể đi sau các tiêu chí và sẽ được kích hoạt bởi bất kỳ tệp nào phù hợp với tất cả các tiêu chí. Vì vậy, bạn có thể findthực hiện những việc như xóa các tệp mà nó tìm thấy, thực thi các lệnh tùy ý trên chúng, v.v.

Nhưng tất nhiên cú pháp cơ bản vẫn còn:

find [starting path(s)] [conditions or criteria]

cảm ơn công việc này tuyệt vời Tôi đã thực sự bối rối và điều này giúp giải quyết mọi chuyện
Sam007

1
+1 Đây là một giới thiệu hay để tìm và cũng dạy cho OP cách tìm thêm thông tin.
lgarzo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.