Python black loại trừ nhiều thư mục

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 sau

Python black loại trừ nhiều thư mục

Vậ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
Python black loại trừ nhiều thư mục

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
Python black loại trừ nhiều thư mục
Loại trừ nhiều thư mục khỏi kết quả tìm kiếm

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ục

Như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

Python black loại trừ nhiều thư mục
Cẩm nang LinuxSagar Sharma

Python black loại trừ nhiều thư mục

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

________số 8

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ử not

find /home/sagar/prune -path /home/sagar/prune/music -prune -o -print
0
Python black loại trừ nhiều thư mục

Như 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
6

Cú 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
2

Giả 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
3
Python black loại trừ nhiều thư mục

Như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

Python black loại trừ nhiều thư mục

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
9

Vì 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
7
Python black loại trừ nhiều thư mục

Như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
9
Python black loại trừ nhiều thư mục

Hã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