Loại trừ các thư mục trong Linux Find

Loai Tru Cac Thu Muc Trong Linux Find



Khi làm việc với Linux, bạn có thể gặp trường hợp muốn định vị nhanh một tệp trong máy của mình. Linux cung cấp các lệnh tìm kiếm khác nhau bao gồm lệnh “tìm” cho phép bạn tìm một tệp cụ thể. Hạn chế duy nhất là lệnh xuất ra nhiều tập tin và lộn xộn. Tuy nhiên, nếu bạn chắc chắn rằng tệp đích không nằm trong một thư mục nhất định, bạn có thể loại trừ tệp đó trong lệnh “tìm” để giảm kết quả tìm kiếm.

Bài đăng này đề cập đến lệnh “tìm” là gì và nó hoạt động như thế nào. Hơn nữa, chúng ta sẽ xem cách bạn có thể sử dụng lệnh trong khi loại trừ các thư mục trong Linux. Đọc tiếp!

Làm việc với lệnh Tìm

Lệnh “find” trong Linux giúp xác định vị trí các tệp và thư mục để tránh phải tìm chúng theo cách thủ công. Nó sử dụng cú pháp sau:







tìm <đường dẫn đến tệp> <đích>

Đây là một ví dụ trong đó chúng tôi cố gắng tìm một tệp có tên “linuxhint.c” trong thư mục chính:





Đầu ra đưa ra đường dẫn tuyệt đối để tìm tệp đích. Giả sử chúng ta muốn tìm các tệp bằng một mẫu. Giả sử chúng ta muốn tìm bất kỳ tệp văn bản nào trong Các tài liệu/ trên hệ thống Linux của chúng tôi. Chúng tôi chỉ định lệnh của chúng tôi như được minh họa trong phần sau:





Lưu ý cách lệnh “tìm” xuất ra tất cả các thư mục chứa tệp văn bản. Đó là một ví dụ đơn giản về việc sử dụng lệnh “find” của Linux.



Cách loại trừ các thư mục trong Linux Tìm

Khi bạn thực hiện lệnh “tìm”, nó sẽ tìm kiếm thư mục và thư mục con đã chỉ định. Sử dụng bất kỳ phương pháp nào trong ba phương pháp sau để loại trừ thư mục con trong tìm kiếm:

1. Tùy chọn cắt tỉa

Để trình diễn, chúng tôi sử dụng linuxhint/ . Chúng ta có thể thấy rằng nó có ba thư mục con như được hiển thị trong hình ảnh sau:

Khi được sử dụng với -print, tùy chọn “prune” giúp loại trừ mọi thư mục con được chỉ định khi làm việc với lệnh “find”. Trong hình ảnh trước, chúng ta có thể sử dụng lệnh “tìm” và đưa đường dẫn đến thư mục Linuxhint. Sau đó, chỉ định để loại trừ dir2 khỏi kết quả tìm kiếm.

Chúng tôi thực hiện lệnh của chúng tôi như sau:

tìm /home/kyle/Desktop/linuxhint/ -path /home/kyle/Desktop/linuxhint/dir2 -prune -o -print

Lưu ý cách dir2 không được hiển thị ở bất kỳ đâu trong đầu ra, điều này xác nhận rằng chúng tôi đã quản lý để loại trừ nó.

Chúng ta cũng có thể thực hiện lệnh tương tự trong phiên bản rút gọn như được hiển thị trong phần sau:

Bạn cũng có thể loại trừ nhiều thư mục. Đối với điều đó, chúng tôi sử dụng tùy chọn -o. Ví dụ sau loại trừ dir1 và dir3 chỉ để lại dir2. Nếu bạn chắc chắn rằng tệp hoặc thư mục mà bạn muốn tìm không có trong các thư mục khác, tùy chọn này sẽ giảm kết quả tìm kiếm.

2. Thông qua tùy chọn “Không”

Trong truy vấn tìm kiếm, có thể thêm “not” để chỉ định thư mục nào cần loại trừ. Việc thực hiện nó đơn giản hơn so với tùy chọn cắt tỉa.

Đây là cú pháp để sử dụng:

tìm [đường dẫn] -type f -not -path ‘*/directory-to-exclude/*’

Giả sử chúng tôi muốn loại trừ dir1 trong kết quả tìm kiếm “tìm” mà chúng tôi đã triển khai với tùy chọn cắt bớt. Ta thực hiện lệnh như sau:

tìm thấy . -type f -not -path ‘*/dir2/*’

Chúng tôi nhận được đầu ra giống như khi sử dụng tùy chọn cắt tỉa. Thư mục được chỉ định bị loại trừ; chỉ các thư mục con còn lại xuất hiện trong kết quả tìm kiếm.

3. Qua dấu “!” Lựa chọn

Phương pháp cuối cùng để loại trừ các thư mục trong lệnh “tìm” của Linux là thêm dấu “!” nhà điều hành. Nó hoạt động giống như toán tử “not” và cú pháp của nó gần như giống hệt nhau.

tìm [đường dẫn] -type f ! -path '*/thư mục cần loại trừ/*'

Giả sử chúng ta lặp lại ví dụ trước đó để loại trừ dir2 bằng cách sử dụng dấu “!” nhà điều hành. Chúng tôi vẫn nhận được cùng một đầu ra. Chỉ một phần của lệnh mà chúng tôi sử dụng đã thay đổi.

Đó là ba cách loại trừ các thư mục trong lệnh “tìm” của Linux.

Phần kết luận

Lệnh “find” của Linux rất hữu ích trong việc nhanh chóng định vị các tệp và thư mục. Sẽ tốt hơn khi bạn có thể loại trừ các thư mục trong lệnh tìm kiếm của mình để giảm kết quả tìm kiếm. Để loại trừ các thư mục, bạn có thể sử dụng lệnh “prune”, “not” hoặc “!” tùy chọn. Bài đăng này đã thảo luận về cách ba tùy chọn hoạt động với các ví dụ đã cho về việc loại trừ các thư mục. Hãy thử nó ra!