Bạn có thể không phải lúc nào cũng muốn điều đó. Bạn có thể tinh chỉnh tìm kiếm của mình bằng cách loại trừ các thư mục khỏi lệnh tìm tìm kiếm
Trong hướng dẫn này, tôi sẽ chỉ ra nhiều cách khác nhau để loại trừ các thư mục trong khi sử dụng lệnh find
Phương pháp 1. Sử dụng tùy chọn cắt tỉa
Trước tiên, hãy để tôi làm sáng tỏ cách bạn sắp sử dụng lệnh tìm với tùy chọn cắt tỉa
find [path] -path [directory to exclude] -prune -o -print
Ví dụ: tôi đã tạo một thư mục có tên
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
2 chứa các tệp và thư mục sauVậy còn việc loại trừ thư mục
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
0 trong khi thực hiện tìm kiếm thì sao?find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
Như bạn có thể thấy rõ, nó chỉ đi qua thư mục văn bản và hình ảnh vì tôi đã loại trừ thư mục thứ 3.
Loại trừ nhiều thư mục
Khá dễ dàng phải không?
Ví dụ: tôi sẽ loại trừ thư mục âm nhạc và văn bản
find . \[ -path ./music -prune -o -path ./text -prune \] -o -print
Nói một cách đơn giản, bạn phải xâu chuỗi các thư mục của mình với
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
2 và find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
1 bên trong find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
4 như được hiển thị để loại trừ nhiều thư mụcNhưng find không bị ràng buộc chỉ tìm kiếm các tệp mà khi được ghép nối với exec, có thể thực thi các tập lệnh, chương trình hoặc thậm chí các lệnh trên đầu ra
Tìm lệnh Exec trong Linux. 9 ví dụ hữu ích
Tìm hoạt động trên các tệp tìm kiếm dựa trên một số tiêu chí. Lệnh exec cung cấp cho bạn khả năng làm việc trên các kết quả đó. Dưới đây là một số ví dụ về kết hợp lệnh find exec
Phương pháp 2. Sử dụng toán tử not
Sử dụng toán tử not rất dễ so với những gì tôi đã giải thích ở trên vì cú pháp khá đơn giản để nắm bắt
Ví dụ: hãy loại trừ thư mục
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
0 bằng toán tử notfind /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
0Như bạn có thể thấy rõ, kết quả tìm kiếm không bao gồm bất kỳ tệp nào liên quan đến thư mục nhạc.
Phương pháp 3. Sử dụng. nhà điều hành
Một cách dễ dàng khác để loại trừ các thư mục trong khi tìm kiếm là sử dụng toán tử
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
6Cú pháp tương tự như những gì tôi đã giải thích ở trên nhưng độ dài hơi ngắn
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
2Giả sử tôi muốn loại trừ một thư mục có tên text để lệnh của tôi sẽ là
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
3Nhưng không phải đâu. Là một trong những lệnh mở rộng nhất, find cũng có thể tìm kiếm tệp dựa trên thời gian sửa đổi.
tiền thưởng. Loại trừ các thư mục con trong lệnh tìm
Chà, điều này hơi khác một chút vì phần này sẽ sử dụng thuật ngữ có tên là
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
7Điều này có nghĩa là tôi sẽ chỉ định tiện ích find sẽ tìm kiếm sâu hơn như thế nào. Ở đây, sâu có nghĩa là các lớp của hệ thống tệp. Cấu trúc chung của hệ thống tập tin trông như thế này
Và bạn có thể điều chỉnh độ sâu tìm kiếm bằng cách sử dụng tùy chọn
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
8 và find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
9Vì vậy, khi bạn sử dụng độ sâu tối đa, bạn đang đưa ra giới hạn cho tiện ích tìm kiếm hoặc nói một cách đơn giản, bạn đang nói "không đi xa hơn giới hạn này"
Mặc dù mindepth là tất cả về nơi bắt đầu tìm kiếm và sẽ tìm kiếm mọi tệp có sẵn ở mọi lớp
Vì vậy, giả sử tôi muốn tìm kiếm các tệp văn bản có sẵn ở lớp đầu tiên, vì vậy tôi sẽ sử dụng maxdepth để kiểm soát tìm kiếm
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
7Nhưng nếu bạn muốn tìm kiếm một lớp cụ thể nằm ở giữa thì sao? .
Giả sử tôi muốn tìm kiếm hình ảnh PNG cụ thể bên trong thư mục Hình ảnh [lớp thứ 2], vì vậy tôi sẽ sử dụng maxdepth và mindepth thành 2 để buộc find tìm kiếm một thư mục cụ thể
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
9Hãy sáng tạo với
find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
8 và find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
9 và bạn sẽ có thể tìm kiếm các tệp cụ thể ngay lập tức. Từ cuối cùng
Đây là ý kiến của tôi về cách loại trừ các thư mục trong khi tìm kiếm tệp bằng nhiều phương pháp khác nhau và nếu bạn vẫn còn nghi ngờ gì, vui lòng hỏi trong phần nhận xét